# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def addTwoNumbers(self, l1, l2):
"""
:type l1: ListNode
:type l2: ListNode
:rtype: ListNode
"""
if l1 is None:
return l2
if l2 is None:
return l1
temp = ListNode(0) #因为没有头结点的概念,所以需要一个临时变量,当计算完成后将头指针后移一位
re = temp
flag=0 # carry bit
while l1 or l2:
temp1 = 0
temp1+= flag #add carry bit
if l1:
temp1+= l1.val
l1 = l1.next
if l2:
temp1+= l2.val
l2=l2.next
flag = temp1//10 #compute carry bit
re.next = ListNode(temp1%10)
re = re.next
if flag == 1:
re.next = ListNode(flag)
re=temp.next #!!!
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def addTwoNumbers(self, l1, l2):
"""
:type l1: ListNode
:type l2: ListNode
:rtype: ListNode
"""
if l1 is None:
return l2
if l2 is None:
return l1
temp = ListNode(0) #因为没有头结点的概念,所以需要一个临时变量,当计算完成后将头指针后移一位
re = temp
flag=0 # carry bit
while l1 or l2:
temp1 = 0
temp1+= flag #add carry bit
if l1:
temp1+= l1.val
l1 = l1.next
if l2:
temp1+= l2.val
l2=l2.next
flag = temp1//10 #compute carry bit
re.next = ListNode(temp1%10)
re = re.next
if flag == 1:
re.next = ListNode(flag)
re=temp.next #!!!
return re
执行用时:172 ms