数据结构:循环链表
创作时间:
作者:
@小白创作中心
数据结构:循环链表
引用
CSDN
1.
https://m.blog.csdn.net/2302_80795993/article/details/144679198
数据结构是Java语言学习中的重要组成部分,其中循环链表是一个常见的数据结构。循环链表的特点是链表中的最后一个节点指向链表的头节点,形成一个闭环。与普通链表不同的是,循环链表中的快慢指针终将相遇,这一特性使得循环链表能够实现无限遍历循环的功能。
下面是一个循环链表的Java代码实现示例:
package Linear;
public class CircleListCheckTest {
public static void main(String[] args) throws Exception {
// 创建结点
CircleListCheckTest.Node<String> first = new CircleListCheckTest.Node<>("aa", null);
CircleListCheckTest.Node<String> second = new CircleListCheckTest.Node<>("bb", null);
CircleListCheckTest.Node<String> third = new CircleListCheckTest.Node<>("cc", null);
CircleListCheckTest.Node<String> fourth = new CircleListCheckTest.Node<>("dd", null);
CircleListCheckTest.Node<String> fifth = new CircleListCheckTest.Node<>("ee", null);
CircleListCheckTest.Node<String> six = new CircleListCheckTest.Node<>("ff", null);
CircleListCheckTest.Node<String> seven = new CircleListCheckTest.Node<>("gg", null);
// 完成结点之间的指向
first.next = second;
second.next = third;
third.next = fourth;
fourth.next = fifth;
fifth.next = six;
six.next = seven;
// 产生环
seven.next = third;
// 判断链表是否有环
boolean circle = isCircle(first);
System.out.println("first链表中是否有环: " + circle);
}
public static boolean isCircle(Node<String> first) {
// 定义快慢指针
Node<String> fast=first;
Node<String> slow=first;
// 遍历链表
while(fast!=null && fast.next!=null){
fast=fast.next.next;
slow=slow.next;
if (fast.equals(slow)){
return true;
}
}
return false;
}
private static class Node<T> {
// 存储数据
T item;
// 下一个结点
CircleListCheckTest.Node<T> next;
public Node(T item, CircleListCheckTest.Node<T> next) {
this.item = item;
this.next = next;
}
}
}
这段代码首先创建了多个节点,并通过指针将它们连接起来形成一个链表。然后,通过将最后一个节点的next指针指向链表中的某个中间节点,形成了一个环。最后,通过快慢指针的方法判断链表中是否存在环。
热门推荐
明朝末年13家起义军首领的结局
青春痘中医调理之道:从内而外,全面改善肌肤健康新策略
一个家庭要往上走,夫妻俩都要知道的建议
心衰后如何调理身体?这份饮食指南请收好
营养并非摄入越多越好!收好这份健康饮食小贴士
易经大师谢咏详解八字命理中的喜用神与忌用神
京东领投骑手保障战,为骑手系上职业“安全带”
非人哉:白泽醉水给妈祖都整无奈了,醉了的样子挺搞笑
呼南高铁宜常段可研报告获批,总投资约324.7亿元
天网恢恢,疏而不漏:成语背后的智慧与启示
黑色沙漠女法PVP继承和觉醒:揭秘黑暗魔女的传奇历程
孙悟空的“地煞72变”与猪八戒的“天罡36变”:谁更胜一筹?
宗门组织结构解析:传统与创新的完美结合
许倬云:中国文化的精神
以价值观塑造人生轨迹的四个维度
澳洲留学TESOL专业的优势与挑战分析
文雅兼带风趣,巧用拆字猜字谜
胃内窥镜检查:从准备到注意事项的全面指南
如何协助团队工作:五大核心方法与实践指南
不朽之旅泰坦巨斧职业攻略:四星斧子也能T56
如何评估基金的表现和潜力?这种评估对投资决策有什么影响?
弹丸论破一代众人格类型整理【MBTI】
人类没发展出攻击性器官?其实有四大攻击手段
云游戏对服务器的需求
每天做多少个深蹲能增肌减脂,提高能力
"worth"用法的总结
如何减少工作中的错误和失误
医生提醒:这4个时段不宜洗头,正确洗头方法请收好
一篇关于对比学习的小综述(原理+实践)
公积金贷款买房需知,账户余额与贷款额度关系