Try   HackMD

Leetcode 2. Add Two Numbers

給定兩組非空且非負的整數鏈結串列以相反順序儲存,將兩個數字相加並且返回鏈結。

想法

如果題目為非相反順序儲存則需先反轉鏈結將位數對齊,則這題並沒有這個需要,所以則直接使用疊代將每個Node的數值相加即可,注意進位的部份。

程式碼:

def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:
        carry = 0
        first = None
        while(l1 or l2):
            x = l1.val if l1 else 0
            y = l2.val if l2 else 0
            carry, value = divmod(x+y+carry, 10)
            if(not first):
                first = ListNode(value)
                tag = first
            else:
                tag.next = ListNode(value)
                tag = tag.next
            if(l1): l1 = l1.next
            if(l2): l2 = l2.next
        if(carry==1):
            tag.next = ListNode(1)
        return first