【发布时间】:2018-03-28 13:07:29
【问题描述】:
我正在尝试在 python 中学习链接列表我已经获得了链接列表类并要求创建附加方法。
这是提供的代码。
class Node:
def __init__(self, item, next):
self.item = item
self.next = next
class LinkedList:
def __init__(self):
self.head = None
def add(self, item):
self.head = Node(item, self.head)
def remove(self):
if self.is_empty():
return None
else:
item = self.head.item
self.head = self.head.next
return item
def is_empty(self):
return self.head == None
def __str__(self):
tmp_str = ""
ptr = self.head
while ptr != None:
tmp_str += ptr.item + " "
ptr = ptr.next
return tmp_str
这是我的追加方法,但它有问题。我知道如果链接列表是空的,我必须创建一个,当里面有元素时问题就开始了。
def append(self, item):
ptr = self.head
if ptr:
while ptr != None:
ptr = ptr.next
ptr = Node(item, ptr)
else:
self.head = Node(item, self.head)
谁能告诉我我做错了什么?非常感谢任何帮助。
【问题讨论】:
-
ptr不是None的情况下(即链表非空的情况下),找到链表的最后一个节点,则可以做last.next = Node(item, None) -
术语 nitpick:
append不是一个类,它是一个函数,是你的LinkedList类的一个方法。 -
@juanpa.arrivillaga 谢谢我修好了
标签: python python-3.x linked-list