【发布时间】:2020-02-29 14:11:49
【问题描述】:
我正在尝试创建一个链接列表,但不确定我是如何得到这个错误的: 编辑代码和错误跟踪:
第 61 行,在模块中 llist.output()
第 56 行,在输出中 llist.delete("阿拉巴马州")
第 50 行,在删除中 previous_node.pointer = current_node.pointer
AttributeError: 'NoneType' 对象没有属性 'pointer'
这是我的代码:
class linkedlist:
data = None
class node:
data = None
start = None
pointer = None
def add(self, item):
#check memory overflow
try:
new_node = linkedlist.node()
new_node.data = item
current_node = self.start
#list is empty
if current_node == None:
new_node.pointer = None
self.start = new_node
else:
#item becomes the new start item
if item > current_node.data:
self.start = new_node
new_node.pointer = current_node
else:
#Find correct position in the list
while current_node != None and current_node.data < item:
previous_node = current_node
current_node = current_node.pointer
new_node.pointer = previous_node.pointer
previous_node.pointer = new_node
return True
return self
except:
return False
def delete(self,item) :
current_node = self.start
if current_node == None:
print("list is empty")
return False
#check the list is not empty
if current_node != None:
#item is the start node
if item == current_node.data:
self.start = current_node.pointer
else:
#Find item in the list
while current_node != None and item != current_node.data:
previous_node = current_node
current_node = previous_node.pointer
previous_node.pointer = current_node.pointer
def output(self) :
items = ["Florida", "Georgia","Delaware","Alabama","California"]
for index in range(0, len(items)):
llist.add(items[index])
llist.delete("Alabama")
for index in range(0, len(items)):
print(items[index])
llist = linkedlist()
llist.output()
【问题讨论】:
标签: python python-3.x linked-list