LeetCode(2) Add Two Numbers

来源:互联网 发布:erp软件什么意思 编辑:程序博客网 时间:2024/06/01 08:44

简单的两个链表数值合并的操作,需要注意的就是极端样例。


# Definition for singly-linked list.# class ListNode:#     def __init__(self, x):#         self.val = x#         self.next = Noneclass Solution:    def fuse(self,l1,l2,is_carry=0):        if l1 is None and l2 is None:            if is_carry == 0:                return None            else:                return ListNode(is_carry)        res = ListNode(0)        if l1 is None:            l1 = ListNode(0)        elif l2 is None:            l2 = ListNode(0)        res.val = l1.val + l2.val + is_carry        is_carry=0        if res.val>9:            is_carry = 1            res.val = res.val % 10        res.next = self.fuse(l1.next,l2.next,is_carry)        return res    def addTwoNumbers(self, l1, l2):        """        :type l1: ListNode        :type l2: ListNode        :rtype: ListNode        """        ori = self.fuse(l1,l2,0)        res = []        while True:            if ori is None:                return res            else:                res.append(ori.val)                ori = ori.next        return res

下附一些极端样例

[],[]
[1],[9,9,9,9,9,9]
[2],[8,9,8]

原创粉丝点击