您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。
輸入:(2
->4-
>3)
+(5-
>6-
>4)
輸出:7
->0-
>
8原因:342
+465
=807
首先考慮到是鍊錶,需要將兩個鍊錶上的數字相加起來然後串成鍊錶再輸出,如果使用遍歷迴圈每乙個鍊錶得到數字在相加,然後在轉化為鍊錶,那麼就會太麻煩,這道題可以參考大數相加的處理方法直接遍歷兩個鍊錶即可。這樣還可以省去很多麻煩。
var
addtwonumbers
=function
(l1, l2)
if(temp >0)
return node.next;
}
如上**法所示:
1、迴圈兩個鍊錶,直到兩個鍊錶都到達終點
2、判斷鍊錶是否為空,如果為空取0,不為空取當前value值
3、將兩個鍊錶上的數直接相加(還要加上上一次所得的值才是這次最終值)
4、再次判斷當前值是否大於10,是有需要進製取出一位給下一次加。
5、判斷鍊錶是否為空,為空直接賦值null,否則迴圈鍊錶下一節點。
6、當前的鍊錶需要前進一位,後面下一次賦值才能不被覆蓋。
7、判斷最後相加的temp值是否有進製(大於10),如果存在則還需要將其加上去才是最終答案。
剛開始對於鍊錶不熟悉的話可以多練練鍊錶相關的題型。鍊錶題型
大家可以先寫一些簡單常見的題型,對於後續的鍊錶演算法題更加有幫助。
LeetCode刷題系列 2 兩數相加
題目 給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭 示例 輸入 2 4 3 5 6 4 ...
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 解題 這題就比較簡單了,兩數相加處理好...