方法1:將長度較短的鍊錶在末尾補零使得兩個連表長度相等,再乙個乙個元素對其相加(考慮進製)
code
class solution
while (cur2->next != null)//獲取l2的長度
if (len1 > len2)//l1較長,在l2末尾補零
}else//l2較長,在l1末尾補零
}cur1 = l1;
cur2 = l2;
bool carry = false;//記錄進製
listnode* l3 = new listnode(-1);//存放結果的鍊錶
listnode* cur = l3;//l3的移動指標
int i = 0;//記錄相加結果
while (cur1 != null && cur2 != null)
if (carry)//若最後還有進製
return l3->next;
}};
方法2:不對齊補零,若煉表不為空則用sum(代表每個位的和的結果)加上,考慮進製
class solution
if (l2 != nullptr)
if (carry)
cur->next = new listnode(sum % 10);
cur = cur->next;
carry = sum >= 10 ? true : false;
}if (carry)
return head->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和...