数据结构:循环链表
创作时间:
作者:
@小白创作中心
数据结构:循环链表
引用
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指针指向链表中的某个中间节点,形成了一个环。最后,通过快慢指针的方法判断链表中是否存在环。
热门推荐
《道德经》第六章:解读谷神不死的玄妙智慧
如何理解《道德经》中“谷神不死,是谓玄牝”?
谷建芬捐赠《滚滚长江东逝水》曲谱手稿,赤壁市获赠文化瑰宝
中国十大李子品种:从黑布林到半边红,品味果中珍品
蹚出果酒加工新路子,3900余亩“巴山硒李”不“剩”果
多模态模型架构的演进
爱康健口腔教你预防牙龈出血
维生素C与牙龈出血:真相与误区
河间驴肉火烧:从非遗美食到网红爆款
饭后吃苹果,助你轻松消化!
饭后吃水果真的会影响消化吗?
中山大学孙逸仙纪念医院专家:糖尿病患者如何正确食用水果
红烧肉 vs 火烧肉:一场味蕾的较量
潍坊肉火烧:千年传承的美味传奇
灰指甲一定是灰色的嗎?灰指甲治療、原因、症狀、注意事項
如果拘留是警方弄错了如何赔偿
温岭轻轨S1线时刻表大揭秘:高效通勤攻略
承德冬日寻味:3 日游攻略,探寻皇家园林与地道美食
元旦去温岭银泰城购物?这份地铁攻略请收好!
独立开发者的Android之路:优势与挑战及关键成功因素
AI、微软和疫苗,比尔·盖茨最新采访都说了些什么?
盖茨基金会首席执行官:与中国合作,惠及全球健康与发展
2024年12月中国债券市场回顾:整体财富指数回报上升,绿色债券市场规模稳定
中国银行黄金市场分析:最新价格趋势解读
2008年金融危机中的黄金:避险与流动性的双重考验
跆拳道实战的9种腿法
跆拳道实战训练方法
Kappa牵手ESWC:一场开创性的电竞赞助合作
子的音乐:治愈你内心的悲伤
冬季滋补神器:扇贝丁的高蛋白秘密