給定兩個非空鍊錶來代表兩個非負整數。數字最高位位於鍊錶開始位置。它們的每個節點只儲存單個數字。將這兩數相加會返回乙個新的鍊錶。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。輸入:(7 -> 2 -> 4 -> 3) + (5 -> 6 -> 4)輸出:7 -> 8 -> 0 -> 7
分別遍歷兩個鍊錶,將鍊錶代表的數存於a, b
根據a,b的和,用頭插法轉換成鍊錶
python
class solution:
def addtwonumbers(self, l1: listnode, l2: listnode) -> listnode:
a = 0
while l1:
a, l1 = a * 10 + l1.val, l1.next
b = 0
while l2:
b, l2 = b * 10 + l2.val, l2.next
a += b
if not a:
return listnode(0)
res = none
while a:
tmp, a = listnode(a%10), a//10
tmp.next = res
res = tmp
return res
Leetcode445 兩數相加 II
給定兩個非空鍊錶來代表兩個非負整數。數字最高位位於鍊錶開始位置。它們的每個節點只儲存單個數字。將這兩數相加會返回乙個新的鍊錶。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。高階 如果輸入鍊錶不能修改該如何處理?換句話說,你不能對列表中的節點進行翻轉。示例 輸入 7 2 4 3 5 6 4 ...
LeetCode 445 兩數相加II(Java)
給定兩個非空鍊錶來代表兩個非負整數。數字最高位位於鍊錶開始位置。它們的每個節點只儲存單個數字。將這兩數相加會返回乙個新的鍊錶。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。高階 鍊錶不能修改該,換句話說,你不能對列表中的節點進行翻轉。示例 輸入 7 2 4 3 5 6 4 輸出 7 8 0...
leetcode 445 兩數相加 II
給定兩個非空鍊錶來代表兩個非負整數。數字最高位位於鍊錶開始位置。它們的每個節點只儲存單個數字。將這兩數相加會返回乙個新的鍊錶。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。高階 如果輸入鍊錶不能修改該如何處理?換句話說,你不能對列表中的節點進行翻轉。解決思路 1 翻轉兩個鍊錶,從低位開始逐...