leetCode刷题--两数相加
生活随笔
收集整理的這篇文章主要介紹了
leetCode刷题--两数相加
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
給你兩個 非空 的鏈表,表示兩個非負的整數。它們每位數字都是按照 逆序 的方式存儲的,并且每個節點只能存儲 一位 數字。
請你將兩個數相加,并以相同形式返回一個表示和的鏈表。
你可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。
示例 3:
輸入:l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9]
輸出:[8,9,9,9,0,0,0,1]
提示:
每個鏈表中的節點數在范圍 [1, 100] 內
0 <= Node.val <= 9
題目數據保證列表表示的數字不含前導零
通過次數692,191提交次數1,758,364
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/add-two-numbers
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
解題思路
因為給出兩個鏈表,要返回第三個, 我們要做的就是在申請第三個鏈表的時候,將鏈表1和鏈表2的val值加到鏈表三上,并對需要進位的地方進行進位,這樣就能快完成,執行效率高,不需要進行多余的運算
/*** Definition for singly-linked list.* type ListNode struct {* Val int* Next *ListNode* }*/ func addTwoNumbers(l1 *ListNode, l2 *ListNode) *ListNode {var listNode *ListNodelistNode = new(ListNode)listNode.Val = l1.Val + l2.Vall1 = l1.Nextl2 = l2.Nextl3 := listNodex := l3.Val / 10l3.Val = l3.Val % 10for {if l1 == nil && l2 == nil {if x != 0 {l3.Next = new(ListNode)l3.Next.Val = x}break}l3.Next = new(ListNode)l3.Next.Val += xif l1 != nil {l3.Next.Val += l1.Vall1 = l1.Next}if l2 != nil {l3.Next.Val += l2.Vall2 = l2.Next}x = l3.Next.Val / 10l3.Next.Val = l3.Next.Val % 10l3 = l3.Next}return listNode }執行結果
耗時4ms超過99.23的用戶
總結
以上是生活随笔為你收集整理的leetCode刷题--两数相加的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OpenGL从入门到精通--纹理
- 下一篇: 当map遇上range