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

Python链表输出异常:仅打印0而非0-5,求代码修正

问题修正:链表仅输出0的问题

你的代码核心错误在于错误地将LinkedList实例赋值给了ptr,而next是Node类的专属属性,LinkedList类并没有这个属性。循环里尝试给ptr.next赋值时,根本没有修改到链表的节点链,最终只有头节点0被保留。

修正后的代码

class Node:
  def __init__(self, value):
    self.value = value
    self.next = None

class LinkedList:
  def __init__(self):
    self.head = None
  def display(self):
    ptr = self.head
    while ptr is not None:
      print(ptr.value)
      ptr = ptr.next

l1 = LinkedList()
# 让ptr指向头节点,而非链表实例
l1.head = Node(0)
ptr = l1.head
a = [1, 2, 3, 4, 5]

for i in a:
    dummy = Node(i)
    ptr.next = dummy
    ptr = ptr.next

# 打印链表
l1.display()

关键修正点

  1. 将ptr初始化为头节点(l1.head),这样后续操作ptr.next才是在修改节点间的链接关系,而非无效操作链表实例。
  2. 移除了多余的ptr.head.next = None,因为Node类的构造函数已经默认把next设为None。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 06:32:04