Leetcode 2 兩數相加

2021-10-22 20:44:36 字數 1120 閱讀 9651

// 力扣

// 給你兩個 非空 的鍊錶,表示兩個非負的整數。它們每位數字都是按照 逆序

// 的方式儲存的,並且每個節點只能儲存 一位 數字。

// 請你將兩個數相加,並以相同形式返回乙個表示和的鍊錶。

// 你可以假設除了數字 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 的範圍內,我們計算...