数据结构:循环链表
创作时间:
作者:
@小白创作中心
数据结构:循环链表
引用
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指针指向链表中的某个中间节点,形成了一个环。最后,通过快慢指针的方法判断链表中是否存在环。
热门推荐
有色金属·锑,谁是盈利最强企业?
从零开始DIY电脑装机全攻略:硬件选购、装机步骤及系统安装详解
Postman中的Cookie和会话管理:掌握API测试的关键环节
肺气肿患者的饮食注意事项
敏捷管理中项目优先级管理如何排序
合同文档的批注与修改:法律实务中的关键步骤
医生推荐:4个简单方法缓解颈椎病
金银花什么时候种植最好?
石家庄打造无人机试飞高地
正确识别呼吸道合胞病毒感染,守护儿童健康
当心!假冒交通违法通知的诈骗短信来袭
掌握横折弯钩的技巧与练习方法,提升书法水平的秘诀
低钾血症危机:如何识别症状并及时采取措施保护生命?
Windows系统日志管理:查看、分析与维护指南
网络敲诈勒索的危害与防范措施解析
狂犬病发病数17年后首次上升,专家呼吁加强防控
如何学会找项目经理谈话
《明日歌》:58字道尽生命无常与时间奥秘
健康科普丨春季常按耳朵的好处原来有这么多?
杭州半山有片梅园突然火了,汉服爱好者扎堆来打卡
世界十大最好吃的方便面排行榜
从厦门中山路到云水谣的打车费用查询
人工智能如何判断错别字?
蒙脱石散与藿香正气水能否同服?用药指南来帮忙
那些年我们一起过吃的奶糖--大白兔奶糖品牌故事
大盘缩量调整,题材股分化加大——急跌后关注前期整理平台的支撑力度
从《霸王别姬》悟领导力:领导力的致命弱点与解决之道
滚筒洗衣机费水吗?一文详解洗衣机节水秘诀
狗狗的年龄按照人类年龄是多少
杜甫《江畔独步寻花七绝句》:千朵万朵压枝低,嫩蕊商量细细开