优草派  >   Python

Python双向链表怎么删除元素?双向链表结构如何删除节点

罗西汉            来源:优草派

双向链表在python之中是一个数据结构,对于所有数据结构来说,基本上的操作都是增删改查之类的。而在之前的文章之中小编已经给大家介绍了双向链表添加、修改和查找的方法,所以这篇文章会来给大家讲解一下python双向链表是怎么删除节点元素的。

Python双向链表怎么删除元素?双向链表结构如何删除节点

(1)python双向链表删除元素需要用到两个方法,第一个方法就是根据索引查询它是否在双向链表结构之中,如果在的话就将其对象给返回出去。

那么代码的具体方法和查询链表元素的方法一样,循环变量链表直到指定的索引处,然后返回该索引下一个节点所指向的元素。这个元素所对应的就是需要去删除的节点了,详细代码如下所示:

def get_node(self, index):
 current = self.head
 while -1 < index:
    current = current.next
 return current

(2)那么第二步就是根据这个要在双向链表对象之中去调用这个函数来将该链表内指定索引位置处的节点对象给找出来,找出来之后还需要将这个节点的前驱链指针指向的下一个对象设置为删除节点的下一个对象。

这一步的目的是为了让删除的节点从链表中断开联系独立出来,但是在删除的这个节点不是最后一个节点的时候,还需要去修改删除节点本身的为前驱链,。最后使用del关键字将节点删除即可,代码如下所示:

def __delitem__(self, index):
  current = self.get_node(index)
  current.previous.next = current.next
  if current.next:
    current.next.previous = current.previous
    self.length -= 1
  del current

以上就是关于“Python双向链表怎么删除元素?双向链表结构如何删除节点”的全部内容了,希望对你有所帮助。

【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。
TOP 10
  • 周排行
  • 月排行