題目:
示例:
輸入:(2 -> 4 -> 3) + (5 -> 6 -> 4)解題思路:數字是放在鍊錶中的,進行加運算,用兩個指標就可以解決,指標同時後移,將指標對應數字加起來即可。這裡有個小問題,進製,滿10進1,這裡再設乙個變數carry存放進製數字,在每次進行加運算時,再加上進製。輸出:7 -> 0 -> 8
原因:342 + 465 = 807
還有乙個小問題,兩個數,即鍊錶長度不一樣,乙個結束了,另乙個還有數字未加,按通常的邏輯,剩餘就是剩餘數字加0,所以用乙個三目運算子判斷一下當前數字是否為空,為空指標數字為0,不為空還是原來的數字。
**實現:
/**
* definition for singly-linked list.
* public class listnode
* }*/class
solution
int num=
(l1==null?
0:l1.val)
+(l2==null?
0:l2.val)
+carry;
listnode n=
newlistnode
(num%10)
;//建立結點,用來放num的值
rear.next=n;
//尾插法
rear=n;
carry=num/10;
//更新carry的值
l1=l1==null?null:l1.next;
//移動指標
l2=l2==null?null:l2.next;
}return head.next;
}}
LeetCode2 兩數相加
嗯。今天兩個簡單題,我可能要墮落了 先貼第乙個 給定兩個非空鍊錶來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回乙個新的鍊錶。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。示例 輸入 2 4 3 5 6 4 輸出 7 0 8原因 342 465 807...
LeetCode 2 兩數相加
題目 給定兩個非空鍊錶來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回乙個新的鍊錶。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。示例 輸入 2 4 3 5 6 4 輸出 7 0 8 原因 342 465 807 解題 這題就比較簡單了,兩數相加處理好...
LeetCode 2 兩數相加
題目描述 給定兩個非空鍊錶來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回乙個新的鍊錶。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。題目思路 先從最低有效位也就是列表 l1 和 l2 的表頭開始相加。由於每位數字都應當處於 0 9 的範圍內,我們計算...