Closed
Description
很明显,你的prevnode并没有更新,从头到尾都是指向的根节点,这样的话,你每删除一个元素,实际上就是把这个元素前面的所有元素都删了,remove方法应该这样写:
def remove(self, value): # O(n)
""" 删除包含值的一个节点,将其前一个节点的 next 指向被查询节点的下一个即可
:param value:
"""
prevnode = self.root #
curnode = self.root.next
for curnode in self.iter_node():
if curnode.value == value:
prevnode.next = curnode.next
del curnode
self.length -= 1
return 1 # 表明删除成功
else:
prevnode = curnode
return -1 # 表明删除失败
Metadata
Metadata
Assignees
Labels
No labels