【问题标题】:Linked-list node delete function链表节点删除功能
【发布时间】:2017-04-12 08:12:25
【问题描述】:

我被要求实现一个节点删除功能,我删除 1 个节点

为什么我的 Node delete 会删除整个列表?

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()

在调用节点删除之前显示整个列表,在我运行之后它不显示任何元素

有什么想法吗?

【问题讨论】:

  • 试试listofnodes.deleteNode(Node(8))(这里的参数太多)
  • 我已经对该位进行了排序,但该函数会删除所有节点而不是选定的节点

标签: python linked-list nodes python-3.5


【解决方案1】:

listofnodes.deleteNode(l,Node(8))

您正在传递 2 个参数,而第三个参数(声明中的 self)隐式传递

您将方法声明为

def deleteNode (self,n):

所以它只接受一个参数(n)

【讨论】:

  • 谢谢老哥,不知什么原因没看到。
  • 我现在对该位进行了排序,但删除功能正在删除整个列表而不是选定的节点?
  • 给我好评!我需要它来解锁哈哈
猜你喜欢
  • 2021-03-30
  • 1970-01-01
  • 1970-01-01
  • 2011-04-26
  • 1970-01-01
  • 2020-05-23
  • 1970-01-01
  • 2015-04-15
  • 2019-05-10
相关资源
最近更新 更多