简单的两个链表数值合并的操作,需要注意的就是极端样例。
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class 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]