DLinkedList.java
class DLinkedNode {
int val = 0;
public DLinkedNode prev = null;
public DLinkedNode next = null;
public DLinkedNode(int val) {
this.val = val;
}
}
public class DLinkedList {
private DLinkedNode head = null;
public DLinkedList() {
//创建傀儡结点
head = new DLinkedNode(-1);
//带环
head.next = head;
head.prev = head;
}
//头插
public void addFirst(int data) {
DLinkedNode newNode = new DLinkedNode(data);
DLinkedNode next = head.next;
head.next = newNode;
newNode.next = next;
newNode.prev = head;
next.prev = newNode;
}
//尾插
public void addLast(int data) {
DLinkedNode newNode = new DLinkedNode(data);
DLinkedNode prev = head.prev;
head.prev = newNode;
newNode.next = head;
prev.next = newNode;
newNode.prev = prev;
}
//任意位置插
public void addIndex(int index,int data) {
int size = size();
if(index < 0 || index > size) {
return;
}
if(index == 0) {
//头插
addFirst(data);
return;
}
if(index == size) {
//尾插
addLast(data);
return;
}
DLinkedNode next = getPos(</