Python数据结构与算法:第3-10课时:双向链表删除元素
删除元素:
一般情况,删除节点前后都有节点:
只需要一个指针就可以了。
特殊情况:头节点被删掉(是否只有一个节点)、尾节点被删掉
实现代码:
def remove(self,item):
cur = self._head
while cur != None:
if cur.item == item:
if cur == self._head:
#用于判断是否为头节点
self._head = cur.next
if cur.next != None:
#用于判断是否是唯一一个节点,
#不是就执行该语句
cur.next.prev = None
else:
cur.prev.next = cur.next
if cur.next:
cur.next.prev = cur.prev
break
else:
cur =cur.next