双向链表增删改查分析
-
单向链表的缺点
-
单向链表查找方向只能是一个方向,而双向链表可以向前或者向后查找。
-
单向链表不能自我删除,需要靠辅助节点,而双向链表,则可以自我删除,所以前面我们单链表删除时节点,总是找到temp,temp是待删除节点的前一个节点。(利用next机制)
-
示意图可以帮助理解删除
-
示意图
-
分析双向链表的遍历,添加,修改,删除的操作思路
- 遍历的方式和单链表一样,只是可以向前,也可以向后查找。
- 添加(默认添加到双向链表的最后)
- 先找到双向链表的最后这个节点
- temp.next=new HeroNode
- newHeroNode.pre = temp;
- 修改
- 思路和原来的单向链表一样
- 删除
- 因为是双向链表,因此我们可以是实现自我删除某个节点
- 直接找到要删除的这个节点,比如temp
- 让temp.pre.next = temp.next
- temp.next.pre = temp.pre
- 第二种添加方式有序添加
-
代码实现
-
-