1. 問題描述
給定兩個非空鍊錶來代表兩個非負整數。數字最高位位於鍊錶開始位置。它們的每個節點只儲存單個數字。將這兩數相加會返回乙個新的鍊錶。
你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。
高階:
如果輸入鍊錶不能修改該如何處理?換句話說,你不能對列表中的節點進行翻轉。
示例:
輸入:(7 -> 2 -> 4 -> 3) + (5 -> 6 -> 4)輸出:7 -> 8 -> 0 -> 72. **實現
棧使用例項。
class solution
while(l2 != null)
int carry = 0;
while(!stack1.isempty() && !stack2.isempty())
while(!stack1.isempty())
while(!stack2.isempty())
if(carry > 0)
stack.push(carry);
listnode newhead = new listnode(0);
listnode p = newhead;
while(!stack.isempty())
return newhead.next;
}}
兩數相加 II
給定兩個非空鍊錶來代表兩個非負整數。數字最高位位於鍊錶開始位置。它們的每個節點只儲存單個數字。將這兩數相加會返回乙個新的鍊錶。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。高階 如果輸入鍊錶不能修改該如何處理?換句話說,你不能對列表中的節點進行翻轉。示例 輸入 7 2 4 3 5 6 4 ...
445 兩數相加 II
這種題的用例是一定會搞一些很大的數的。long都會溢位,所以我們就不用嘗試轉數字做加法轉鍊錶的方法了。另外直接倒置兩個鍊錶再做加法的做法會改變原鍊錶,題幹也說了禁止改動原鍊錶。1.求兩個鍊錶長度,如果一長一短,把短的前面加若干個0節點,使得兩個鍊錶長度相同。之後對於就遞迴連線鍊錶。dfs函式引數為前...
leetcode 兩數相加 II
條件 給定兩個非空鍊錶來代表兩個非負整數。數字最高位位於鍊錶開始位置。它們的每個節點只儲存單個數字。將這兩數相加會返回乙個新的鍊錶。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。高階 如果輸入鍊錶不能修改該如何處理?換句話說,你不能對列表中的節點進行翻轉。eg l1 2 4 3 6 l2 ...