leetcode 探索 鍊錶 兩數相加

2021-10-07 12:42:37 字數 982 閱讀 1269

將兩個公升序鍊錶合併為乙個新的 公升序 鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。

示例:

輸入:1->2->4, 1->3->4

輸出:1->1->2->3->4->4

合併鍊錶,此題比較簡單,但要注意的事情有以下三點。

該位上的和如果大於等於10的話,需要進製,那麼需要將該進製攜帶到下一輪。

如果最後兩個鍊錶都到頭了,但是進製上仍然有值,那麼需要新建乙個節點儲存該值,並連線到煉表裡。

如果有乙個鍊錶到頭了,另外乙個鍊錶仍然是要計算結果的,比如在乙個鍊錶到頭時候,進製了1,另外一煉表上的剩餘資料是9->9->9這樣的,需要一直計算的。

/**

* definition for singly-linked list.

* type listnode struct

*/func

addtwonumbers

(l1 *listnode, l2 *listnode)

*listnode

cur := head

var a, b, add int

for}

break

}// 不為nil的l1和l2指標都要給出值,並前進。

if l1 !=

nilif l2 !=

nil// 將其與進製值add相加得到和,並計算其餘數和新的進製值

sum := a + b + add

add = sum /

10 sum = sum %

10 cur.next =

&listnode

cur = cur.next

// 為什麼要置0呢,因為下一輪假如有l1或者l2指標已經為nil了,那麼該值將會被重複計算,所以清零

a, b =0,

0}return head.next

}

鍊錶兩數相和 2 Leetcode

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

兩數相加 LeetCode 鍊錶

給定兩個非空鍊錶來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回乙個新的鍊錶。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。示例 輸入 2 4 3 5 6 4 輸出 7 0 8原因 342 465 807思路 在建立乙個新的鍊錶,然後再新鍊錶中進行操作...

leetcode 鍊錶 兩數相加

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