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 輸出 ...