序號2 兩數相加

2021-09-22 12:17:13 字數 1453 閱讀 8226

任務描述

遇到問題

**實現

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和...