数据结构:循环链表
创作时间:
作者:
@小白创作中心
数据结构:循环链表
引用
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指针指向链表中的某个中间节点,形成了一个环。最后,通过快慢指针的方法判断链表中是否存在环。
热门推荐
豆豆虽小,营养俱存! 豆类营养百科
洗液配方设计及优化方法
发生踝关节扭伤怎么办?四步急救法+预防指南
罗衫曳清影 玉靥映芳华——浅谈古代仕女图的审美变迁
小区电梯维保合同签订指南:从需求到风险防范的全方位解析
人生三境:淡定、从容、舍得!
西游奇妖:九头虫的神秘传奇
比赛打分系统在不同权重下的应用
天国拯救2必要之恶怎么选择
陈士铎先生及其《辨证玉函》
日本咖喱的魅力与历史:从英国传入到国民美食的演变
中泰互免签证即日生效,可入境泰国单次停留不超过30日
每天在床上就可以做的运动,却是训练核心肌群的有效方法
自行车轮胎怎么选?实心胎、开口胎还是真空胎?
集成房屋的优缺点有哪些
2楼带大平台的户型,究竟好不好?
中医文化角|中华神树:桑
产品外观工业设计:如何融入文化元素提升价值?
托育园与幼儿园的区别:不同阶段的成长摇篮
高考落幕,生涯启航:高考后如何为孩子做生涯规划?
冷冻保鲜的标准操作规范,你会吗?
浅谈电动汽车的热泵系统(Heat Pump)
三星冰箱灯不亮的多种原因及解决方法
白玉蟾:劝君更尽一杯酒;与尔同销万古愁
家校社协同打造“教联体”,究竟如何联?
玉米/花生间作微生物趋同性驱动产铁载体微生物改善花生铁营养和产量提升
粗盐花椒艾草热敷的功效和作用
浮小麦:专治气虚自汗,阴虚盗汗
保养周期计算误区:按公里数还是时间?不同部件差异大揭秘
更长效、可停药,礼来AD疗法Donanemab在中国获批