https://leetcode-cn.com/problems/add-two-numbers/
这里的两个数已经翻转了,所以不需要进行反转直接相加即可
需要注意的是进位,在最后的时候如果l1, l2都没有数据,但是addition进位为1,还需要在最后加一个值为1的node
# Definition for singly-linked list.
# class ListNode(object):
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution(object):
def addTwoNumbers(self, l1, l2):
"""
:type l1: ListNode
:type l2: ListNode
:rtype: ListNode
"""
head = tail = None
addition = 0
while (l1 or l2 or addition):
v1 = l1.val if l1 else 0
v2 = l2.val if l2 else 0
s = v1 + v2 + addition
value = s % 10
addition = 1 if s > 9 else 0
if not head:
tail = head = ListNode(value)
else:
tmp = ListNode(value)
tail.next = tmp
tail = tail.next
l1 = l1.next if l1 else None
l2 = l2.next if l2 else None
return head
网友评论