循环链表
循环链表与普通链表的操作非常相似,只不过循环链表没有采用NULL值表示链表的结束,所以当遍历循环链表的时候要特别小心,否则将会无限地遍历链表,因为在循环链表中每个结点都有后继结点,最后一个结点的后继结点为表头结点。所以循环链表的遍历的结束条件为curentNode == headNode
主要操作
- 统计循环链表的结点个数
- 插入操作
1)前插
2)尾插
3)中间插入- 删除操作
1)删除头结点
2)删除尾结点
3)删除中间结点
单循环链表
package dataStructure;
class CCLNode{
int data;
CCLNode next = this;
//创建节点
public CCLNode(int d) {
data = d;
}
}
public class CCList {
//单循环链表的头结点
CCLNode head;
public CCList() {
head = null;
}
//计算单循环链表长度
int ListLength() {
int length = 0;
CCLNode currentNode = head;
// 遍历单循环链表
while(currentNode != null) {
length++;
currentNode = currentNode.next;
if(currentNode == head) break;
}
return length;
}
//打印单循环链表
void Print() {