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()
关键修正点
- 将
ptr初始化为头节点(l1.head),这样后续操作ptr.next才是在修改节点间的链接关系,而非无效操作链表实例。 - 移除了多余的
ptr.head.next = None,因为Node类的构造函数已经默认把next设为None。
内容的提问来源于stack exchange,提问作者sacred_programmer
相关产品推荐
相关产品推荐

