You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LeetCode两数相加问题:ListNode无__getitem__属性错误排查

错误原因分析

你本地测试时传入的是列表,列表支持[::-1]切片和索引访问,但LeetCode实际传入的是ListNode节点对象——这种对象没有列表的索引/切片能力,所以执行l1[::-1]会触发TypeError: 'ListNode' object has no attribute '__getitem__'。此外,你的代码最后返回的是列表,但题目要求返回ListNode类型,这也不符合题目的输出要求。

解决方法

必须按照链表的操作逻辑来实现:遍历两个链表逐位相加、处理进位,最后构建出符合要求的ListNode结果链表。

首先明确LeetCode中ListNode的结构

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
        """
        dummy = ListNode(0)  # 哑节点,简化结果链表的头节点处理
        current = dummy
        carry = 0  # 存储进位值
        
        # 循环条件:只要还有未遍历的节点,或还有进位需要处理
        while l1 or l2 or carry:
            # 获取当前位的数值,链表为空则取0
            val1 = l1.val if l1 else 0
            val2 = l2.val if l2 else 0
            
            # 计算当前位总和与新的进位
            total = val1 + val2 + carry
            carry = total // 10
            current_val = total % 10
            
            # 创建新节点并添加到结果链表
            current.next = ListNode(current_val)
            current = current.next
            
            # 移动链表指针到下一位
            if l1:
                l1 = l1.next
            if l2:
                l2 = l2.next
        
        return dummy.next  # 哑节点的下一个节点才是结果链表的头

本地测试辅助代码

如果要在本地用列表测试,需要先把列表转换成ListNode对象,测试后再转回列表查看结果:

def list_to_linkedlist(lst):
    dummy = ListNode(0)
    current = dummy
    for num in lst:
        current.next = ListNode(num)
        current = current.next
    return dummy.next

def linkedlist_to_list(node):
    lst = []
    while node:
        lst.append(node.val)
        node = node.next
    return lst

# 测试示例
l1 = list_to_linkedlist([2, 4, 3])
l2 = list_to_linkedlist([5, 6, 4])
result = Solution().addTwoNumbers(l1, l2)
print(linkedlist_to_list(result))  # 输出 [7, 0, 8],对应342+465=807的逆序

内容的提问来源于stack exchange,提问作者Ross Geller

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 05:10:04