双向链表也是链表的一种,特殊性在于:它对比单链表多了一个指向前驱(prev)的引用。
注意:head----指向链表的第一个结点
last------指向链表最后一个结点
size------当前链表结点个数
class Node {
int val;
Node next = null; // 指向后继结点,最后一个结点的 next == null
Node prev = null; // 指向前驱结点,第一个结点的 prev == null
Node(int val) {
this.val = val;
}
}
public class MyLinkedList {
private Node head = null;
private Node last = null;
private int size = 0;
public void pushFront(int val) {//头插创建
Node node = new Node(val); //定义一个结点
node.next = head;
if (head != null) {
head.prev = node;
} else {
last = node;