Python 链表节点删除功能
我被要求实现一个节点删除功能,删除1个节点 为什么我的节点要删除整个列表Python 链表节点删除功能,python,linked-list,nodes,python-3.5,Python,Linked List,Nodes,Python 3.5,我被要求实现一个节点删除功能,删除1个节点 为什么我的节点要删除整个列表 class Node(object): def __init__(self, value): self.value=value self.next=None self.prev=None class List(object): def __init__(self): self.head=None # start of list
class Node(object):
def __init__(self, value):
self.value=value
self.next=None
self.prev=None
class List(object):
def __init__(self):
self.head=None # start of list
self.tail=None # end of list
def insert(self,n,x):
if n!=None:
x.next=n.next
n.next=x
x.prev=n
if x.next!=None:
x.next.prev=x
if self.head==None:
self.head=self.tail=x
x.prev=x.next=None
elif self.tail==n:
self.tail=x
def display(self):
values=[]
n=self.head
while n!=None:
values.append(str(n.value))
n=n.next
print ("List: ",",".join(values))
def deleteNode (self,n):
if n.prev!=None:
n.prev.next = n.next
else:
self.head = n.next
if n.next != None:
n.next.prev = n.prev
else:
self.tail = n.prev
if __name__ == '__main__':
listofnodes=List()
listofnodes.insert(None, Node(4))
listofnodes.insert(l.tail,Node(6))
listofnodes.insert(l.head,Node(8))
listofnodes.insert(l.head,Node(5))
listofnodes.insert(l.head,Node(9))
listofnodes.insert(l.head,Node(10))
listofnodes.deleteNode(Node(8)) # I want to delete Node 8 from listofnodes
listofnodes.display()
在调用节点delete之前,将显示整个列表,在运行之后,它将不显示任何元素
有什么想法吗?
节点列表。删除节点,节点8
您正在传递2个参数,其中第三个参数是隐式传递的声明中的self
您将该方法声明为
def deleteNode self,n:
因此它只接受一个参数ntry listofnodes.deleteNodeNodeNode此处参数过多我已对该位进行排序,但该函数将删除所有节点,而不是所选的节点Hanks mate,由于某种原因,我看不到它。我现在已经对该位进行了排序,但是删除功能正在删除整个列表,而不是所选的节点?给我肯定的评级!我需要它来解锁哈哈