給你兩個非空的鍊錶,表示兩個非負的整數。它們每位數字都是按照 逆序 的方式儲存的,並且每個節點只能儲存 一位 數字。
請你將兩個數相加,並以相同形式返回乙個表示和的鍊錶。
你可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。
示例 1:
輸入:l1 = [2,4,3], l2 = [5,6,4]
輸出:[7,0,8]
解釋:342 + 465 = 807.
示例 2:
輸入:l1 = [0], l2 = [0]
輸出:[0]
示例 3:
輸入:l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9]
輸出:[8,9,9,9,0,0,0,1]
模擬傳統計算方法:
由於輸入的兩個鍊錶都是逆序儲存數字的位數的,因此兩個鍊錶中同一位置的數字可以直接相加。
我們同時遍歷兩個鍊錶,逐位計算它們的和,並與當前位置的進製值相加。具體而言,如果當前兩個鍊錶處相應位置的數字為 n1,n2,進製值為carry,則它們的和為 n1+n2+carry;其中,答案鍊錶處相應位置的數字為(n1+n2+carry)%10,而新的進製值為 ⌊(n1+n2+carry)/10⌋。
如果兩個鍊錶的長度不同,則可以認為長度短的鍊錶的後面有若干個 0 。
此外,如果鍊錶遍歷結束後,有carry>0,還需要在答案鍊錶的後面附加乙個節點,節點的值為carry。
class solution else
carry = sum / 10;
if (l1 != null)
if (l2 != null)
}if (carry > 0)
return head;
}}
2 兩數相加
平均星級 4.45 239次評分 2018年2月2日 28.6k次 預覽 給定兩個非空鍊錶來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回乙個新的鍊錶。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。示例 輸入 2 4 3 5 6 4 輸出 7 0 8 ...
2 兩數相加
給定兩個非空鍊錶來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回乙個新的鍊錶。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。示例 輸入 2 4 3 5 6 4 輸出 7 0 8原因 342 465 807 definition for singly l...
2 兩數相加
給定兩個非空鍊錶來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回乙個新的鍊錶。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。示例 輸入 2 4 3 5 6 4 輸出 7 0 8 原因 342 465 807演算法 我們首先從最低有效位也就是列表 l1和...