|
发表于 2024-3-21 16:30:59
|
显示全部楼层
问题出在没有正确处理两个链表长度不一致的情况。在递归调用`self.addTwoNumbers(l1.next, l2.next)`时,如果其中一个链表已经遍历结束,那么就不能再继续取下一个节点。
以下是修正后的代码:
- class Solution:
- def addTwoNumbers(self, l1: Optional[ListNode], l2: Optional[ListNode], next1 = 0) -> Optional[ListNode]:
- if not l1 and not l2:
- if next1 == 0:
- return None
- else:
- return ListNode(val=1)
-
- val1 = l1.val if l1 else 0
- val2 = l2.val if l2 else 0
-
- total = val1 + val2 + next1
- next1 = 1 if total >= 10 else 0
- cur = ListNode(val=total % 10)
-
- if l1:
- l1 = l1.next
- if l2:
- l2 = l2.next
-
- cur.next = self.addTwoNumbers(l1, l2, next1)
-
- return cur
复制代码
希望能帮到你!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|