这是原始问题: https://leetcode.com/problems/add-two-numbers/
我的解决方案被标记为错误,但是可以在测试用例上使用,我不知道为什么。 请问。
class Solution(object):
def addTwoNumbers(self, l1, l2):
"""
:type l1: ListNode
:type l2: ListNode
:rtype: ListNode
"""
ln = ListNode(0)
lll= ln
val=0
carry=0
while l1 or l2:
if l1 and l2:
val, carry = (l1.val+l2.val+carry)%10, (l1.val+l2.val+carry)/10
l1=l1.next
l2=l2.next
elif l2:
val, carry = l2.val%10, 0
l2=l2.next
elif l1:
val, carry = l1.val%10, l1.val/10
l1=l1.next
ln.val=val
if l1 or l2 or carry>0:
ln.next=ListNode(0)
ln=ln.next
return(lll)
答案 0 :(得分:1)
l2
终止,因此在l1
的循环中,需要将进位添加到值val=(l1.val+carry)%10
l1
和l2
都终止的情况。考虑例如:
l1,l2
都终止了,因此需要在while循环之后创建一个带有进位的新节点。