【发布时间】:2018-10-12 16:19:18
【问题描述】:
def add(self, value):
#write your code here
if self.head == None:
new_node = Node(value)
self.head = new_node
self.tail = self.head
elif self.head.value > new_node.value:
new_node = Node(value)
new_node.value = value
new_node.next = self.head
self.head = new_node
else:
new_node = Node(value)
self.tail.setNext(new_node)
self.tail = new_node
self.count += 1
上面是我的函数add的代码。我正在尝试添加 Node 对象
以升序排列到一个链表中,这样当我打印它时,它会显示为:
>>> x.add(8)
>>> x.add(7)
>>> x.add(3)
>>> x.add(-6)
>>> x.add(58)
>>> x.add(33)
>>> x.add(1)
>>> x.add(-88)
>>> print(x)
Head:Node(-88) Tail:Node(58)
List:-88 -6 1 3 7 8 33 58
但是当我使用上面的代码执行此操作时,它会打印为:
>>> print(x)
Head:Node(-88)
Tail:Node(1)
List:-88 -6 3 7 8 58 33 1
我 80% 确定问题出在 elif 语句中,但我不确定如何解决它以使其按升序运行。
【问题讨论】:
-
当您到达
elif ...:时,new_node尚未创建。如果您在这里没有收到错误,可能是因为您有一个同名的全局代码,或者您在此处显示的代码不是真实的。只需与value比较即可。
标签: python function linked-list