单链表的缺点
- 查找的方向只能是一个方向,而双向链表可以向前或者向后查找
- 单向链表不能自我删除,需要靠辅助节点,而双向链表可以,所有单链表删除节点总是找到temp,temp是待删除节点的前一个节点
思路:
(1)遍历:和单链表一样,只是可以向前、也可以向后查找
(2) 添加(默认添加到双向链表的最后)
- 找到双向链表的最后一个节点
- temp.next=newHeroNode
- newHeroNode.pre=temp
(3)修改思路和原理与单链表相似
(4)删除
- 因为是双向链表,因此可以实现自我删除某个节点
- 直接找到要删除的节点,比如temp
- temp.pre.next=temp.next
- temp.next.pre=temp.pre
双链表的增删改查
public class DoubleLinkedListDemo {
public static void main(String[] args) {
DoubleHeroNode doubleHeroNode1=new DoubleHeroNode(1,"a","a");
DoubleHeroNode doubleHeroNode2=new DoubleHeroNode(2,"b","b");
DoubleHeroNode doubleHeroNode3=new DoubleHeroNode(3,"c","c");
DoubleHeroNode doubleHeroNode4=new DoubleHeroNode(4,"d","d");
DoubleHeroNode doubleHeroNode5=new DoubleHeroNode(5,"d","d");
DoubleSinleLinkedList doubleSinleLinkedList=new DoubleSinleLinkedList();
doubleSinleLinkedList.add2 (doubleHeroNode3);
doubleSinleLinkedList.add2 (doubleHeroNode2);
doubleSinleLinkedList.add2 (doubleHeroNode4);
doubleSinleLinkedList.add2 (doubleHeroNode5);
doubleSinleLinkedList.list();
}
}
class