// 力扣
// 給你兩個 非空 的鍊錶,表示兩個非負的整數。它們每位數字都是按照 逆序
// 的方式儲存的,並且每個節點只能儲存 一位 數字。
// 請你將兩個數相加,並以相同形式返回乙個表示和的鍊錶。
// 你可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。
// 這題不難,但是做出來需要考慮好很多條件。
// 首先建立結果鍊錶res,為了返回完整的鍊錶,我們在res.next中
// 儲存結果,到最後的時候直接返回res.next即可。
// // 定義res鍊錶的指標r,定義l1 l2鍊錶的指標p1 p2。定義進製記錄位carry,
// 一旦加法產生進製,將被存入carry中。
//// 需要記住的是,鍊錶從左往右遍歷正好是個位-十位-百位-...從低位到高位
// 的遍歷,所以加法運算產生的進製正好用到下一位的加法。
// while迴圈開始指標右移,基本思想是p1 p2雙指標一步步右移,遍歷的元素
// 做加法,加出來的當前位存入res鍊錶,進製數記錄到carry中用於下一次加法
// 運算。
// int x記錄p1.val,如果p1為空則x為0。同理,int y記錄p2.val。
// x和y和carry做加法運算,得到sum。sum的高位進製記錄到carry,
// sum的低位直接存入r.next.val中。
// p1,p2可以允許一次null,表明已經l1 l2已經遍歷完了。
// p1或p2為空之後,p1或p2不再移動。如果非空,指標右移。直到兩個鍊錶
// 都被遍歷完了,while迴圈結束。
// r指標也右移。
// while迴圈結束後,如果carry還有,r後建立新結點存入carry。
// 最後回到表頭res返回res.next
class solution
if (carry != 0)
return res.next;}}
LeetCode2 兩數相加
嗯。今天兩個簡單題,我可能要墮落了 先貼第乙個 給定兩個非空鍊錶來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回乙個新的鍊錶。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。示例 輸入 2 4 3 5 6 4 輸出 7 0 8原因 342 465 807...
LeetCode 2 兩數相加
題目 給定兩個非空鍊錶來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回乙個新的鍊錶。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。示例 輸入 2 4 3 5 6 4 輸出 7 0 8 原因 342 465 807 解題 這題就比較簡單了,兩數相加處理好...
LeetCode 2 兩數相加
題目描述 給定兩個非空鍊錶來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回乙個新的鍊錶。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。題目思路 先從最低有效位也就是列表 l1 和 l2 的表頭開始相加。由於每位數字都應當處於 0 9 的範圍內,我們計算...