【发布时间】:2018-01-23 15:34:07
【问题描述】:
我已经在 IDLE 中用这段代码实现了链表。如果我遍历它会显示预期的输出。但是在hackerrank中我遇到了麻烦。我错过了什么? 这是问题link
class Node:
def __init__(self,data=None,next_node = None):
self.data = data
self.next_node = next_node
def get_data(self):
return self.data
def get_next(self):
return self.next_node
def set_next(self,new_next):
self.next_node = new_next
class LL:
def __init__(self,head=None,tail=None):
self.head = head #head
self.tail = tail #tail
def Insert(self,data):
new_node = Node(data) #new_node
new_node.set_next(None)
if self.head == None:
self.head = new_node
self.tail = new_node
else:
self.tail.set_next(new_node)
self.tail = new_node
【问题讨论】:
-
最后 6 行没有任何意义。您希望头部和尾部看起来像什么?
-
我认为您应该使用示例代码中为您的语言提供的 Node 类。测试代码似乎依赖于某些属性的存在,比如
node.next -
插入功能在哪里?根据需要返回链表的头部在哪里?
-
程序的第一行应该是
def Insert(node, data):,不是class Node,当然也不是class LL,并且该函数应该返回一些东西。 -
如果不了解需要什么,就不可能提供解决方案,即使是一个简单的问题。 Hackerrank 应该对此进行评估,而您未能“在以下(插入)方法中返回列表的头部”
标签: python data-structures linked-list