給出兩個非空的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照***倒序***的方式儲存的,並且它們的每個節點只能儲存一位數字。
如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和(新鍊錶也是倒序)。
假設除了數字 0 之外,這兩個數都不會以 0 開頭。
例如:342 + 475 = 817
2->4->3 + 5->7->4 = 7->1->8
# definition for singly-linked list.
# class listnode:
# def __init__(self, x):
# self.val = x
# self.next = none
class
solution
:def
addtwonumbers
(self, l1: listnode, l2: listnode)
-> listnode:
return self.addtwo(l1, l2)
defaddtwo
(self, l1, l2, add_value =0)
:ifnot l1 and
not l2 and add_value ==0:
# 如果兩個節點都不存在,並且進製值為0,返回none,遞迴結束條件
return
none
else
: l1_value = l1.val if l1 else
0# 讀取l1節點值
l2_value = l2.val if l2 else
0# 讀取l2節點值
node_value = l1_value + l2_value + add_value # 求出兩個節點值之和
l1_next = l1.
next
if l1 else
none
# 獲取next節點
l2_next = l2.
next
if l2 else
none
if node_value >=10:
# 如果有進製,對next節點進行加一操作
result_node = listnode(node_value -10)
result_node.
next
= self.addtwo(l1_next, l2_next,1)
pass
else
: result_node = listnode(node_value)
result_node.
next
= self.addtwo(l1_next, l2_next)
return result_node
兩數相加 鍊錶
給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 5 6 4 輸出 ...
兩煉表數相加
給出兩個非空的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照逆序的方式儲存的,並且它們的每個節點只能儲存一位數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 5 6 4 輸出 7 0 8 ...
鍊錶兩數相加
給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 5 6 4 輸出 ...