LeetCode Q2 兩數相加

2021-10-14 13:17:01 字數 917 閱讀 4505

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

請你將兩個數相加,並以相同形式返回乙個表示和的鍊錶。

你可以假設除了數字 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和...