双链表的增删改查(包括有序、无序添加)

单链表的缺点
  • 查找的方向只能是一个方向,而双向链表可以向前或者向后查找
  • 单向链表不能自我删除,需要靠辅助节点,而双向链表可以,所有单链表删除节点总是找到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 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值