給出兩個非空的鍊錶用來表示兩個非負的整數。題目的思路很簡單,難點在於鍊錶操作,這題裡面可以多寫幾個函式練練資料結構的基礎知識。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位數字。
如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。 您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。
·示例:
輸入: (2 -> 4 -> 3) + (5 -> 6 -> 4)
輸出: 7 -> 0 -> 8
原因:
342 + 465 =807
注意:處理過程中,會出現輸入為[1]
、[9,9]
的情況,相加結果為[0,0,1]
,這要求我們增加乙個進製標誌flag
,並學會手寫鍊錶元素的尾插法。
以下是在leetcode的提交**。
class
solution
return len;
} listnode*
addtwonumbers
(listnode* l1, listnode* l2)
l1->val +
= flag;
flag = l1-
>val /10;
l1->val %=10
;if(i==len1-
1&& flag)
l1 = l1-
>next;}}
else
l2->val +
= flag;
flag = l2-
>val /10;
l2->val %=10
;if(i == len2 -
1&& flag)
l2 = l2-
>next;}}
return tmp;}}
;
執行結果
執行結果分析
//可增加的break語句,加上最優節省為原來運算時間的1/n
if(i>shortlistlength &&
!flag)
break
;
關於鍊錶的一些操 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 的範圍內,我們計算...