JAVA-LinkedList双向链表底层实现

在这里插入图片描述
Node节点类,item代表节点储存的值,next代表本节点的下一个节点,prev代表本节点的上一个节点,里面有个构造方法,通过调用此构造方法给节点赋值。
在这里插入图片描述
LinkedList类的局部变量,有三个参数,分别代表上一个,下一个和节点个数
在这里插入图片描述
add方法,调用了linkLast方法,进入该方法:
在这里插入图片描述
定义了一个节点类型的参数l,并把last赋值给他,新建了一个节点类型的参数,并调用node构造方法

插入“a”:

在这里插入图片描述

插入“b”:

在这里插入图片描述
注意:随着新节点的插入过程,last和first分别一直指向双向链表的头结点和尾节点,但是在第一次添加节点时,只有一个节点,所以last和first指向同一个节点
以此类推的向链表尾部插入元素。

向任意位置添加元素:

在这里插入图片描述

在这里插入图片描述

小算法:查找过程先对index位置进行判断,如果靠前半部分,就从前往后遍历,反之从后往前遍历。
在这里插入图片描述
ok,这就是基本加入元素的java底层的源代码

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值