任務描述
遇到問題
**實現
class solution:
def addtwonumbers(self, l1: listnode, l2: listnode) -> listnode:
if l1 == none and l2 == none:
return none
l3 = listnode(none) # 初始化l3
l4 = l3 # 定義乙個指標總是指向鍊錶l3頭部
carry = 0 # 初始化進製
while (true):
sum = l1.val + l2.val + carry
l3.val = sum%10 # 新鍊錶第一位總是l1.val+l2.val除以10的餘數
carry = sum // 10 # 判斷進製
if l1.next == none or l2.next == none: # 鍊錶長度不一致時跳出
break
else:
l1,l2 = l1.next,l2.next # 否則繼續迴圈
tempnode = listnode(none) # 初始化tempnode儲存每次相加的和,生成新node
l3.next=tempnode
l3 = l3.next
if l1.next == none and l2.next == none and carry == 0:
return l4
if l1.next == none and l2.next == none and carry == 1:
l3.next = listnode(1)
return l4
l_remain = l1.next if(l2.next == none and l1.next != none) else l2.next # 判斷哪乙個鍊錶還有剩餘元素
while (true):
sum = l_remain.val + carry
tempnode = listnode(sum%10)
l3.next = tempnode
l3 = l3.next
carry = sum // 10
if l_remain.next == none and carry == 0:
return l4
if l_remain.next == none and carry == 1:
l3.next = listnode(1)
return l4
l_remain = l_remain.next
2 兩數相加
平均星級 4.45 239次評分 2018年2月2日 28.6k次 預覽 給定兩個非空鍊錶來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回乙個新的鍊錶。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。示例 輸入 2 4 3 5 6 4 輸出 7 0 8 ...
2 兩數相加
給定兩個非空鍊錶來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回乙個新的鍊錶。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。示例 輸入 2 4 3 5 6 4 輸出 7 0 8原因 342 465 807 definition for singly l...
2 兩數相加
給定兩個非空鍊錶來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回乙個新的鍊錶。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。示例 輸入 2 4 3 5 6 4 輸出 7 0 8 原因 342 465 807演算法 我們首先從最低有效位也就是列表 l1和...