这是原始问题: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)
l2
终止,因此在 的循环中l1
,您需要将进位添加到 valueval=(l1.val+carry)%10
l1
和l2
终止,进位的情况。考虑例如:l1,l2
终止,因此需要在 while 循环后创建一个带有进位的新节点。本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句