LeetCode 2 445 兩數相加 鍊錶

2022-06-25 17:54:09 字數 1427 閱讀 5848

在給定的鍊錶中,數字所在的位數隨著鍊錶前進方向而變高

因此,在每一輪迭代中:

直到兩個鍊錶都遍歷結束,迭代完成

除此之外,還需要注意兩點:

在這道題中,數字最高位是位於鍊錶開始位置的,這意味著我們不能沿著鍊錶的前進方向 來進行數字的相加

我們可以先將兩個鍊錶進行反轉,然後將結果傳入上一題寫好的函式中,最後再返回反轉的鍊錶

反轉鍊錶的函式:

var reverselist = function(head) 

if(!head.next)

var cur = head

var pre = head.next

var temp = null

cur.next = null

while(pre)

return cur

};

上一題的函式(命名為 add)

主函式:

var addtwonumbers = function(l1, l2) ;
我們可以先將兩個鍊錶的節點值 按順序分別放入兩個棧中

然後在每一輪迭代中:

直到兩個棧都為空,迭代結束

最後再檢查進製carry即可

var addtwonumbers = function(l1, l2) 

while(l2)

var prev = null

var carry = 0

var res

while(true)else if(s1.length > 0 && s2.length === 0)else if(s2.length > 0 && s1.length === 0)else

if(res <= 9)else

let cur = new listnode(res%10)

cur.next = prev

prev = cur

}//檢查最高位有無進製

if(carry === 1)

return prev

};

LeetCode2 445 兩數相加I II

原題目 第一題給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 5 ...

兩數相加 2 445

1 列印debug 時會導致煉表頭指標偏離,列印debug正確後需要刪除該部分,才能獲取正確結果。編寫拷貝時出現入參 或者錯別字的地基錯誤,需要格外注意負責浪費過多的時間。2 相加運算時需要記錄進製資訊,且最高位的進製資訊需要單獨處理 3 迭代運用的不夠熟練,特別是迭代函式中煉表新元素建立之後需要賦...

LeetCola 2 445 兩數相加

2.兩數相加 public listnode addtwonumbers listnode l1,listnode l2 if carry 0 return sentinel.next 給你兩個非空鍊錶來代表兩個非負整數。數字最高位位於鍊錶開始位置。它們的每個節點只儲存一位數字。將這兩數相加會返回乙...