將兩個公升序鍊錶合併為乙個新的 公升序 鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。
示例:
輸入: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原...