演算法題 兩數相加 LeetCode

2021-09-05 12:53:55 字數 821 閱讀 3308

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

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

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

示例:

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

輸出:7 -> 0 -> 8

原因:342 + 465 = 807

這個題用到的是十進位制下的進製加法算式。

當兩數相加時,如果某一位的結果大於等於10,則在此位上寫相加得數的個位,並需要向上一位計1。

/**

* definition for singly-linked list.

* public class listnode

* }*/

public static listnode addtwonumbers(listnode node1, listnode node2) else if(node2 == null)else

if(val > 9)else

currentlistnode.next = new listnode(val);

currentlistnode = currentlistnode.next;

}// 這裡比較容易漏掉,如果鍊錶加完之後還有進製,則把這一位補上

if(carry == 1)

return retlistnode.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所以我們要設定乙個...

leetcode刷題 兩數相加

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