python双向链表删除元素_数据结构:双向链表(六)删除元素

双向链表的操作

remove(item)删除链表中的元素

思路:1、需要循环遍历,循环条件为cur != None;同时需要判断cur.item等不等于item,等于进入循环,不等于移动指针,cur=cur.next

2、当删除元素对于当前cur指向时候,分情况考虑

a、第一个元素是要删除的元素,需要将self.__head=cur.next,同时应该讲第二个节点向前指向None,即cur.next.prev=None

b、当删除元素在中间的时候,我们应该 cur.next.prev=cur.prev以及cur.prev.next=cur.next

c、特殊情况当元素在尾部时,cur.next.prev没有意义,需要判断一下cur.next有没有,有是在中间,需要cur.next.prev=cur.prev,没有直接跳过

class DList(object):

def __init__(self):

self.__head=None

def remove(self,item):

cur=self._head

while cur != None:

if cur.item == item :

if cur==self._head:

self._head=cur.next

cur.next.prev=None

cur.prev.next=cur.next

if cur.next:

cur.next.prev=cur.prev

else:

cur=cur.next

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值