数据结构:循环链表
创作时间:
作者:
@小白创作中心
数据结构:循环链表
引用
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指针指向链表中的某个中间节点,形成了一个环。最后,通过快慢指针的方法判断链表中是否存在环。
热门推荐
黄龙五彩池:海拔3576米的自然奇观
精雕细琢,巧夺天工——中国瓦当艺术
华为笔记本保护套安装方法是什么?
过度训练综合症:过度锻炼肯定不好
掌握两大高效说明技巧:打比方与摹状貌
相对论有多牛?最古老且至今仍然正确的物理学原理
画画竟然可以摆脱焦虑,快来看看精神康复新方法
【節日推介】湯圓甜蜜,消化有道——元宵節健康指南
混合肌、干肌、油肌、敏感肌的判断方法:四大肤质分类全解析
别再把油鱼当鳕鱼!一文告诉你怎么辨别
雪茄烟叶和普通烟叶区别
股票中的IPO是什么意思:IPO对投资者的意义
如何让你的诗词更有魅力?4首七绝教你化抽象为具象,情感动人
四首七绝诗里的海棠花:从绽放到凋零的诗意之美
法律实体是什么?一文详解法律实体的概念、分类与重要性
龙血树有多少种品种(温室植物里的“龙”)
儿童蛀牙怎么处理比较好
后室原版视频:探索神秘空间的起源与影响
鱼刺卡喉咙怎么办?4个正确处理方法+3个错误做法解析
突然眼花是什么原因引起的
血压护航:高血压的防控策略与实施
减肥期间嘴馋怎么办?临床营养科推荐5种健康零食→
古韵今风:推拿按摩,古老疗法焕发现代健康活力
新疆阿勒泰:旅游+让万千游客奔赴同嗨
老挝种植什么树木好养活
华人姓氏千万种 盘点那些稀有姓氏
广西与贵州交界处的“菇类村”,女性衣着开放,以母系社会为主
用数据说话:四大名著热度排名大揭秘
热粥如何储存
AI热潮中,哪类人才最紧缺?