2 兩數相加

2021-09-20 15:21:50 字數 668 閱讀 8167

題目要求:給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。

示例輸入:(2 -> 4 -> 3) + (5 -> 6 -> 4)

輸出:7 -> 0 -> 8

原因:342 + 465 = 807​

思路:l1長度為m,l2長度為n。​時間複雜度o(max(m,n))。空間複雜度o(1)

使用兩個指針對兩個鍊錶進行遍歷 ,若當前結點為空,則預設其值為0

將2個數相加得到sum,sum%10得到當前數字,sum/10得到進製數​​

注意當進製數最後不為0時,應將其新增至鍊錶中​

listnode* addtwonumbers(listnode* l1, listnode* l2) else

if(q!=null)else

temp=(a+b+carry)%10; //當前結點數字

carry=(a+b+carry)/10; //計算新的進製數

listnode* t=new listnode(temp);

s->next=t;

s=s->next;

}if(carry!=0)

return dummyhead->next;

}​

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