leetcode系列2 兩數相加

2021-10-23 04:37:07 字數 860 閱讀 5818

您可以假設除了數字 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 解題 這題就比較簡單了,兩數相加處理好...