題目描述
2.兩數相加
給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。示例如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。
您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。
輸入:(2 -> 4 -> 3) + (5 -> 6 -> 4)解題思路輸出:7 -> 0 -> 8
原因:342 + 465 = 807
和全加器原理類似,設立本位和sum和進製co。
令初始進製co = 0
每個節點val分別為x,y
則本位和為本位數值相加再加上進製y
sum = x + y + co
解題過程中需要注意的是兩鍊錶長度可能不相等,因此應注意x,y在什麼時候取0。
此外還應注意,若兩鍊錶長度相等,最後一節點相加時x + y > 10產生進製,因此在迴圈外應單獨判斷最後一結點相加完後co是否等於1
時間複雜度o(n)
**如下
class
solution
else
if(l2 !=
null
)else
int sum = x + y + co;
p->next =
newlistnode
(sum%10)
; p = p-
>next;
co = sum/10;
}if(co ==1)
p->next =
newlistnode(1
);return ans-
>next;}}
;
執行結果
Day 10 兩數相加
給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 5 6 4 輸出 ...
day2兩數相加
給你兩個 非空 的鍊錶,表示兩個非負的整數。它們每位數字都是按照 逆序 的方式儲存的,並且每個節點只能儲存 一位 數字。請你將兩個數相加,並以相同形式返回乙個表示和的鍊錶。你可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 1 divmod 函式把除數和餘數運算結果結合起來,返回乙個包含...
2 兩數相加
平均星級 4.45 239次評分 2018年2月2日 28.6k次 預覽 給定兩個非空鍊錶來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回乙個新的鍊錶。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。示例 輸入 2 4 3 5 6 4 輸出 7 0 8 ...