python鍊錶的進製相加運算

2021-10-01 04:26:47 字數 1106 閱讀 9980

leetcode 乙個題目,用python鍊錶完成

給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。

如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。

您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。

示例:輸入:(2 -> 4 -> 3) + (5 -> 6 -> 4)

輸出:7 -> 0 -> 8

原因:342 + 465 = 807

可以用遞迴的方法對其賦值,通過將a鍊錶換掉而不是建立新的鍊錶來獲取

用python對其進行描述

class

solution

(object)

: def addtwonumbers

(self, l1, l2)

: # 主要邏輯都在內部函式中實現

def add

(a,b,carry)

: # 遞迴的終止條件是a和b都為空

# 如果carry大於0需要返回乙個進製標誌

ifnot(a or b)

:return

listnode(1

)if carry else none

# 如果a為空則將listnode(0

)賦給a,對於b也是

a = a if a else

listnode(0

) b = b if b else

listnode(0

) #處理val,以及進製標誌

val = a.val + b.val + carry

carry =

1if val>=

10else

0 a.val = val%

10#注意是進製後的值

# 現在a的值就是兩個節點相加後的和了

# 之後再次遞迴計算a.next和b.next

a.next =

add(a.next,b.next,carry)#用遞迴來完成

return a

return

add(l1,l2,

0)

python鍊錶兩數相加

給出兩個非空的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 倒序 的方式儲存的,並且它們的每個節點只能儲存一位數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和 新鍊錶也是倒序 假設除了數字 0 之外,這兩個數都不會以 0 開頭。例如 342 475 817 2 4 3...

LeetCode題解 2 兩數相加 鍊錶 進製

給出兩個非空的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照逆序的方式儲存的,並且它們的每個節點只能儲存一位數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 5 6 4 輸出 7 0 8 ...

兩數相加 鍊錶

給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 5 6 4 輸出 ...