【发布时间】:2020-07-10 13:57:36
【问题描述】:
我在 Python 中实现了一个链表。第一项被正确插入。但是第二个在头节点中覆盖它。之后它就可以正常工作了。
class Node:
def __init__(self):
self.data = None
self.next = None
class LinkedList:
def __init__(self):
self.head = Node()
self.iterator = self.head
def isEmpty(self):
if self.head.data is None:
return True
def insert(self, value):
if self.isEmpty():
self.head.data = value
else:
while self.iterator.next is not None:
self.iterator = self.iterator.next
self.iterator.next = Node()
self.iterator.data = value
self.iterator = self.head
def __str__(self):
l = []
while self.iterator.next is not None:
l.append(self.iterator.data)
self.iterator = self.iterator.next
self.iterator = self.head
return str(l)
t = LinkedList()
t.insert(2)
t.insert(4)
t.insert(8)
t.insert(6)
t.insert(10)
t.insert(12)
print(t)
同样在 str 方法中,如果 Head 是唯一的节点,我该如何打印数据。 (由于 Next of Head 为 None,它不会进入 while 循环。)
【问题讨论】:
-
你真的不应该使用
self.iterator。请改用局部变量。检查它的节点是None来决定是否插入它。不是它的next是None
标签: python pointers data-structures linked-list