leetcode2 Add Two Numbers

来源:互联网 发布:淘宝猜你喜欢怎么设置 编辑:程序博客网 时间:2024/06/05 05:44

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

思路:
(1) 越界检查
(2)进位符
(3)L1,L2长度相同,以及当L1、L2计算完毕还存在进位的情况

# 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        """        if l1==None:            return l2        if l2==None:            return l1        ans=ListNode(0)        p=ans        flag=0        while l1!=None and l2!=None:            temp=l1.val+l2.val+flag            if temp<=9:                p.next=ListNode(temp)                flag=0            else:                p.next=ListNode(temp%10)                flag=1            l1=l1.next            l2=l2.next            p=p.next        if l1==None:            l=l2        else:            l=l1        while l!=None:            temp=l.val+flag            if temp<=9:                p.next=ListNode(temp)                flag=0            else:                p.next=ListNode(temp%10)                flag=1            l=l.next            p=p.next        if flag:            p.next=ListNode(flag)        return ans.next
0 0
原创粉丝点击