[leecode]2.兩數相加(單鏈表)(python3)
阿新 • • 發佈:2018-12-14
剛開始使用list,int,string等,做的不甚理想,然後參考瞭解題思路,使用連結串列,顯然更快,也是更為正確的解題方式。
做完這題,需要好好複習一下自己的資料結構知識啦!
class Solution: def addTwoNumbers(self, l1, l2): """ :type l1: ListNode :type l2: ListNode :rtype: ListNode """ dummyHead = ListNode(0) p=l1;q=l2;carry = 0;curr=dummyHead while p!=None or q!= None: if p!= None: x = p.val else: x = 0 if q!=None: y = q.val else: y = 0 sumRes = x+y+carry carry = sumRes//10 curr.next = ListNode(sumRes%10) curr = curr.next if p!=None: p = p.next if q!=None: q = q.next if carry > 0: curr.next = ListNode(carry) return dummyHead.next
carry就是上一次兩數相加的時候有沒有進一位,進了就是1,沒進就是0.