Add Two Numbers

来源:互联网 发布:网络上骂王宝强的 编辑:程序博客网 时间:2024/06/05 16:21

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

# Definition for singly-linked list.# class ListNode(object):#     def __init__(self, x):#         self.val = x#         self.next = Noneclass Solution(object):    def addTwoNumbers(self, l1, l2):        """        :type l1: ListNode        :type l2: ListNode        :rtype: ListNode        """        res = []        if l1 is None:            return l2        if l2 == None:            return l1        b = 0        node1 = l1        node2 = l2        res = ListNode(0)        node3 = res        while node1 is not None or node2 is not None :            if node1 is None:                a = node2.val + b                node2 = node2.next            elif node2 is None:                a = node1.val + b                node1 = node1.next            else:                a = node1.val + node2.val + b                node1 = node1.next                node2 = node2.next            if a >= 10:                val = a - 10                b = 1            else:                val = a                b = 0            node3.next = ListNode(val)            node3 = node3.next        if b == 1:            node3.next = ListNode(1)        return res.next




0 0