数据结构:循环链表
创作时间:
作者:
@小白创作中心
数据结构:循环链表
引用
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指针指向链表中的某个中间节点,形成了一个环。最后,通过快慢指针的方法判断链表中是否存在环。
热门推荐
2024年薪酬报告揭示:ESG岗位需求激增,引领企业可持续发展
潍坊峡山区:全域推进“三区同建” 奋力蹚出库区乡村振兴新路径
纸塑复合膜热封测试仪:包装质量的守护者
圆柱锂电池自动点焊机:关键技术解析与产业化应用进展
Magisk:Android系统的终极定制工具
结直肠息肉食疗方法
五代cpu有哪些型号
减肥能吃羊角蜜吗?羊角蜜的热量是多少?
羊角蜜会上火吗?解读真相!(探究羊角蜜的营养价值与上火因素)
岳阳市简介:洞庭明珠的历史人文与自然风光
新茶饮疯狂“卷”糖,年轻人到底买不买账?
如何规范报销医院开药费用?这类报销有哪些规定?
“燊”字读音、含义及文化内涵解析
2024深圳簕杜鹃赏花周精彩来袭
路口转弯时如何准确判断信号灯?怎样避免误判导致的违规?
数据复盘:银行净流入25.98亿 龙虎榜抢筹拓维信息
法院债权抵债务的法律适用与操作指南
中国科学院第二十届公众科学日:丰富多彩的“硬核”科普活动点燃青少年科学梦想
个人的行政处罚的记录保留多久
冒充熟人诈骗来袭,你做好防范了吗?
央美建筑学院就业前景如何?毕业后发展方向有哪些?
一分钟带你搞清亲情账户和家庭共济
绍兴公园游玩全攻略:景点、门票、交通一网打尽 🌳
股票账户委托交易合同的法律全解析
中国南北差异大揭秘:气候、饮食、文化大不同!
夏季吃姜真的胜过参汤?这4类人需谨慎
埋入式种植牙一期看见金属正常吗?揭秘种植牙的那些事儿
如何有效防止种植牙松动掉落?掌握这些技巧让种植牙更稳固!
我国科学家在珊瑚共生体研究领域取得新突破,成果登上国际期刊封面
在这座被大自然偏爱的海滨之城,见山、见城、见海~