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

Python实现链表search方法遍历时出现AttributeError是什么原因?

错误原因分析
  • 等值比较逻辑错误:search方法的循环条件写为while node != value,这里node是Node类的实例对象,你传入的搜索参数是整数类型的value,两种完全不同类型的对象做判等操作永远返回True,循环会一直执行,直到node遍历到链表末尾的None值,此时尝试访问None.next就触发了AttributeError。
  • 缺少空节点前置判断:to_list方法的循环条件是while node,会先判断当前节点是否为None再执行后续操作,而search方法的循环没有做空节点校验,就算后续修正了比较逻辑,如果要搜索的值不存在于链表中,还是会遍历到None触发同类报错。
修复后的search方法实现
def search(self, value):
    """ Search the linked list for a node with the requested value and return the node. """
    node = self.head
    # 先校验节点非空,再对比节点存储的数值
    while node:
        if node.value == value:
            return node
        node = node.next
    # 未匹配到对应节点时返回None,可根据业务需求调整为抛出指定异常
    return None

内容的提问来源于stack exchange,提问作者Gary Kong

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 20:48:03