java中的LinkedList的add()解析
一. 介绍LinkedList类
阐明LinkedList类的成员:
其本质是双向链表,first指向链表的头部,last指向链表的尾部。
二. 介绍LinkedList静态内部类Node类
阐明Node类的成员:
三. 创建LinkedList对象
调用无参构造器,创建一个空链表
四. 解析add()方法
示例代码如下:
public class LinkedListCRUD { public static void main(String[] args) { LinkedList linkedList = new LinkedList(); linkedList.add(1); linkedList.add(2); } }
主要源代码如下:
添加1之后的示意图,如下图所示:
添加2具体步骤的示意图,如下图所示:
注意:双向链表,头部节点的前驱是NULL,尾部节点的后继是NULL。
总结:
first 指针固定不变,通过移动 l 和 last 指针,进行添加【尾插法】;
1) l 指针 移动到 last的位置;
2)创建新的节点【需要添加的新元素】,将该节点的 next 指针指向空,pre 指针指向 l指针所指向的地址;
3)让 last 指针指向新的节点,并且将 l 指针指向的节点的 next 指针 指向 新的节点。
此处,我是以C语言的指针来理解的。