循环链表
package demo01;
//一个节点
public class LoopNode {
//结点内容
int data;
//下一个节点
LoopNode next = this;
public LoopNode(int data){
this.data = data;
}
//插入一个节点作为当前节点的下一个节点
public void insert(LoopNode node){
//取出下一个节点,作为下下一个节点
LoopNode nextNext = next;
//把新节点作为当前节点的下一个节点
this.next = node;
//把下下一个节点设置为新节点的下一个节点
node.next = nextNext;
}
//删除下一个节点
public void removeNext(){
//取出下下一个节点
LoopNode newNext = next.next;
//把下下一个节点设置为当前节点的下一个节点
this.next = newNext;
}
//获取下一个节点
public LoopNode next(){
return this.next;
}
//获取节点中的数据
public int getData(){
return this.data;
}
}
package demo02.test;
import demo01.LoopNode;
public class TestLoopNode {
public static void main(String[] args) {
LoopNode n1 = new LoopNode(1);
LoopNode n2 = new LoopNode(2);
LoopNode n3 = new LoopNode(3);
LoopNode n4 = new LoopNode(4);
//增加节点
n1.insert(n2);
n2.insert(n3);
n3.insert(n4);
System.out.println(n1.next().getData());
System.out.println(n2.next().getData());
System.out.println(n3.next().getData());
System.out.println(n4.next().getData());
}
}