一. 介绍LinkedList类  

  阐明LinkedList类的成员:

java -add javaadd什么意思_链表

双向链表,first指向链表的头部,last指向链表的尾部。

二. 介绍LinkedList静态内部类Node类

  阐明Node类的成员:

java -add javaadd什么意思_链表_02

三. 创建LinkedList对象

  调用无参构造器,创建一个空链表

  

java -add javaadd什么意思_示例代码_03

 四. 解析add()方法

  示例代码如下:

public class LinkedListCRUD {
    public static void main(String[] args) {
        LinkedList linkedList = new LinkedList();
        linkedList.add(1);
        linkedList.add(2);
    }
}

  主要源代码如下:

java -add javaadd什么意思_双向链表_04

java -add javaadd什么意思_双向链表_05

  添加1之后的示意图,如下图所示:

 

java -add javaadd什么意思_示例代码_06

   添加2具体步骤的示意图,如下图所示:

java -add javaadd什么意思_示例代码_07

 

java -add javaadd什么意思_双向链表_08

 

java -add javaadd什么意思_双向链表_09

 注意:双向链表,头部节点的前驱是NULL,尾部节点的后继是NULL。

总结:

first 指针固定不变,通过移动 l 和 last 指针,进行添加【尾插法】;

1) l 指针 移动到 last的位置;

2)创建新的节点【需要添加的新元素】,将该节点的 next 指针指向空,pre 指针指向 l指针所指向的地址;

3)让 last 指针指向新的节点,并且将 l 指针指向的节点的 next 指针 指向 新的节点。 

此处,我是以C语言的指针来理解的。