循环链表
前面我们已经讲过了单链表和双向链表,今天我们要讲的主角是循环链表,循环链表与前面两个没多大区别,仅仅是将最后一个元素的后驱指向首元素,即尾部结点的后驱再也不是指向null了,而是指向头部;
结构图如下
功能实现:
public class CycleLinkedList {
class CycleNode {
Object data;
CycleNode next = null;
CycleNode() {//为空情况
this.data = null;
}
CycleNode(Object data) {//不为空的情况
this.data = data;
}
}
private CycleNode head, pos;
private int size;
//初始化时,生成一个包含头节点的空链表
CycleLinkedList() {
head = new CycleNode();
head.next = head;
pos = head;
this.size = 0;
}
/**
* 返回链表的大小
* @return
*/
public int len() {
return this.size;
}
/**
* 判断链表是否为空
*