leetCode演算法 2 兩數相加

2021-10-03 02:18:03 字數 772 閱讀 8376

推薦閱讀:

給出兩個非空的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照逆序的方式儲存的,並且它們的每個節點只能儲存 一位 數字。

如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。

您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。

示例:

輸入:(2 -> 4 -> 3) + (5 -> 6 -> 4)

輸出:7 -> 0 -> 8

原因:342 + 465 = 807

涉及到的知識點

鍊錶

1.將兩個鍊錶看成是相同長度的進行遍歷,如果乙個鍊錶較短則在前面補 00,比如 987 + 23 = 987 + 023 = 1010

2.每一位計算的同時需要考慮上一位的進製問題,而當前位計算結束後同樣需要更新進製值

3.如果兩個鍊錶全部遍歷完畢後,進製值為 11,則在新鍊錶最前方新增節點 11

小技巧:對於鍊錶問題,返回結果為頭結點時,通常需要先初始化乙個預先指標 pre,該指標的下乙個節點指向真正的頭結點head。使用預先指標的目的在於鍊錶初始化時無可用節點值,而且鍊錶構造過程需要指標移動,進而會導致頭指標丟失,無法返回結果。

class

solution

return root.next;

}}

leetcode演算法 兩數相加

這一次真的 了,寫了好久卻忽略了int溢位,還是官方的答案簡介直接 arithmetic the sum of two numbers name nanfang time 2019 12 22 content 這是我自己寫的,我是把數算出來然後加一起的 public static listnode ...

leetcode演算法 兩數相加

解析 本題兩種方式解決 一種是算出兩數相加得出和,再轉化為鍊錶,但是這樣的話和可能會很大就回導致得到的和無法接受要用到long型別甚至long long型別 另一種方式 我們可以注意到我們只需將兩個鍊錶同時遍歷相加將得到的和mod10即可插入到新的鍊錶中,但由於會和會大於10而進1所以我們要設定乙個...

LeetCode2 兩數相加

嗯。今天兩個簡單題,我可能要墮落了 先貼第乙個 給定兩個非空鍊錶來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回乙個新的鍊錶。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。示例 輸入 2 4 3 5 6 4 輸出 7 0 8原因 342 465 807...