class LoopNode {
// 节点内容
private int data;
// 下一个节点
private LoopNode next;
public LoopNode(int value) {
this.data = value;
// 将该节点的下一个节点指向自己
this.next = this;
}
// 获取下一个节点
public LoopNode next() {
return this.next;
}
// 获取节点中的数据
public int getData() {
return this.data;
}
// 删除下一个节点
public void removeNext() {
// 先取出下下一个节点
LoopNode nextNextNode = next.next;
// 把下下一个节点设置为当前节点的下一个节点
this.next = nextNextNode;
}
// 对于循环链表来说,单链表的插入操作就是添加节点的操作,但添加时每次都要从最后一个节点往后添加
// 插入一个节点作为当前节点的下一个节点
public void insert(LoopNode node) {
// 取出下一个节点,作为下下一个节点
LoopNode nextNode = next;
// 把新节点作为当前节点的下一个节点
this.next = node;
// 把下下一个节点设置为新节点的下一个节点
node.next = nextNode;
}
}
public class Main {
public static void main(String[] args) {
LoopNode ln1 = new LoopNode(1);
LoopNode ln2 = new LoopNode(2);
LoopNode ln3 = new LoopNode(3);
// 增加节点
ln1.insert(ln2);
ln2.insert(ln3);
System.out.println(ln1.next().getData());
System.out.println(ln2.next().getData());
System.out.println(ln3.next().getData());
}
}