給出兩個非空的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照逆序的方式儲存的,並且它們的每個節點只能儲存一位數字。
如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。
您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。
題目精巧的設定成逆序儲存的鍊錶,正好對應加法中的從個位數開始相加的順序,需要注意的是,在相加的過程中,不僅要記錄當前位兩個數字是否有進製,還需要記錄上一次兩數相加的進製情況。對於長度不想等的兩個鍊錶,當為null時,將null補0來方便計算。
最後判斷相加後,如果進製仍為1,就將進製插入到鍊錶中,使用啞節點來進行返回。
publiclistnode addtwonumbers(listnode l1, listnode l2)
//定義啞節點
listnode dummynode = new listnode(-1);
//定義前驅節點遍歷鍊錶
listnode prevnode =dummynode;
//定義進製標誌 1 -> 有進製 0 -> 無進製
int addone = 0;
while (l1 != null || l2 != null
)
if (l2 != null
) prevnode =prevnode.next;
}//如果遍歷完畢後,addone進製還為1,加入到鍊錶
if (addone == 1)
return
dummynode.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 的範圍內,我們計算...