Day10 Task2 兩數相加

2021-10-03 17:30:17 字數 1327 閱讀 9151

題目描述

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 ...