一、双链表的理解
双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表任意一个结点开始,都可以很方便的访问它的前驱结点和后继结点。
二、双链表的代码实现
首先我们先来初始化双链表,注意双链表有两个地址域一个存放前驱结点的地址一个存放后继结点的地址。
class ListNode{
public int val;
public ListNode next;
public ListNode pre;
public ListNode(int val){
this.val = val;
}
}
头插法
双链表的头插法与尾插法与单链表基本一致,在此不画图做过多赘述
public void addFirst(int data){
ListNode node = new ListNode(data);
if(head == null){
node = this.head;
node = this.last;
}
if(head != null){
node.next = this.head;
head.pre = node;
this.head = node;
}
}
尾插法
public void addLast(int data){
ListNode no