LeetCode:Add Two Numbers

2094 ワード

LeetCode:Add Two Numbers
The problem is described as following:
You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.
Input: (2 -> 4 -> 3) + (5 -> 6 -> 4) Output: 7 -> 0 -> 8
My solution is as following(in Python ):
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None

class Solution:
    # @return a ListNode
    def addTwoNumbers(self, l1, l2):
        re = ListNode(0)
        cur = re
        temp = 0
        while not (l1 == None  and l2 ==None):
            extra = temp
            if l1 != None :
                extra += l1.val
                l1 = l1.next

            if l2 != None :
                extra += l2.val
                l2 = l2.next

            temp = extra/10
            cur.next = ListNode(extra%10)
            cur = cur.next
        if temp != 0:
            cur.next = ListNode(temp)

        return re.next