# 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):
""":type l1: listnode
:type l2: listnode
"""if l1 is none: #如果有乙個鍊錶為空,則返回另乙個
return l2
if l2 is none:
return l1
tmp=listnode(0) #tmp是暫存變數
res=tmp #res是結果變數,是返回的最終結果
flag=0 #flag是進製,兩個鍊錶相加會產生進製
while l1 or l2: #當l1和l2不都為空時,兩個鍊錶相加
tmp_sum=0 #tmp_sum是兩個鍊錶中對應單個結點的和值
if l1: #如果l1不空,就把l1的某個結點值賦給tmp_sum
tmp_sum=l1.val #l1.val是l1某個結點的值,用.val字尾表示
l1=l1.next #運算完成後指標指向下乙個結點
if l2:
tmp_sum+=l2.val
l2=l2.next
tmp_res=(tmp_sum+flag)%10 #%表示兩數相除的餘數,即個位數字
flag= (tmp_sum+flag)//10 #//表示兩數相除的整除部分的值,即進製數字
res.next=listnode(tmp_res)
res=res.next #res指標後移
if flag: #如果flag不為0
res.next=listnode(1) #res下一結點設為1
res=tmp.next
del tmp #刪除tmp的值
return res
l1和l2的字尾.next和.val分別表示指標指向下乙個的位置和結點表示的值 leetcode02 兩數相加
隨機一題 給定兩個非空鍊錶來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回乙個新的鍊錶。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。示例 輸入 2 4 3 5 6 4 輸出 7 0 8 原因 342 465 807 思路 剛開始很蠢的我居然乙個乙個讀...
leetcode 02 兩數相加
leetcode題目鏈結 題目要求 個鍊錶 逆序表示十進位制樹,按位數 兩兩相加。這題 我的的思路就是從個位慢慢往上加 如果加起來的值超過10,就要進製,新建節點的值為1。class solution def addtwonumbers self,l1 listnode,l2 listnode li...
Leetcode 02 兩數相加
第二題難度中等 給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 5...