双链表和单链表的区别是多了一个指向上一个节点的指针。
循环双链表插入
1、找到该链表的下一个节点。
2、新插入的节点上一个节点指向该链表,下一个指针指向该链表的下一个节点。
3、该链表下一个节点指向新插入的节点。
所有
public class DoubleNode { int data; DoubleNode next = this; DoubleNode pre = this; public DoubleNode(int data) { this.data = data; } public void after(DoubleNode node) { // 保存当前节点的下一个节点 DoubleNode nextNode = this.next; // 新插入节点 链接上下 node.next = nextNode; node.pre = this; this.next = node; } public DoubleNode getNext() { return this.next; } public DoubleNode getPre() { return pre; } public int getData() { return data; } }
测试
public class NodeTest { public static void main(String[] args) { DoubleNode doubleNode = new DoubleNode(1); DoubleNode doubleNode2 = new DoubleNode(2); DoubleNode doubleNode3 = new DoubleNode(3); doubleNode.after(doubleNode2); doubleNode2.after(doubleNode3); System.out.println(doubleNode.getNext().getPre().getData()); System.out.println(doubleNode.getNext().getNext().getNext().getData()); } }