1. 程式人生 > >[leecode]2.兩數相加(單鏈表)(python3)

[leecode]2.兩數相加(單鏈表)(python3)

剛開始使用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.