【发布时间】:2016-01-28 23:23:36
【问题描述】:
我是 Python 新手,无法实现从链表中删除最后一个节点的函数。这是我到目前为止的代码(我正在一个名为 Coderunner 的在线平台上进行编码,该平台已经为我实现了一些后台代码,例如 Node 类):
class LinkedList:
def __init__(self):
self.head = None
def print_all(self):
current = self.head
while current != None:
print(current.get_data())
current = current.get_next()
def add(self, item):
new_node = Node(item)
new_node.set_next(self.head)
self.head = new_node
def remove_from_tail(self):
current = self.head
prev = current
while current != None:
current = current.get_next()
prev.set_next(current.get_next())
return current
运行以下代码时:
my_list = LinkedList()
my_list.add('Car')
my_list.add('Bike')
my_list.add('Truck')
result = my_list.remove_from_tail()
print('Removed:', result)
my_list.print_all()
我明白了:
Removed: <__main__.Node object at 0x1063650>
Bike
Truck
谁能建议我哪里出错了?似乎节点对象被打印但不是节点内的值。提前感谢您的帮助!
【问题讨论】:
-
欢迎来到 StackOverflow。请阅读并遵循帮助文档中的发布指南。 Minimal, complete, verifiable example 适用于此。在您发布代码并准确描述问题之前,我们无法有效地帮助您。您还没有包含类 Node。您还没有包含打印“已删除:”的代码。您可能打印的是 Node 对象,而不是其名称。
-
你应该发布
Node类。 -
Node 类没有提供给我,相反,我实现的代码需要与我假设的 Python 中 Node 类的通用实现一起使用。
-
我仍然不清楚你想要什么输出。汽车->自行车->卡车,然后删除卡车。或卡车->自行车->汽车,然后删除汽车。
标签: python linked-list nodes