数据结构:循环链表
创作时间:
作者:
@小白创作中心
数据结构:循环链表
引用
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指针指向链表中的某个中间节点,形成了一个环。最后,通过快慢指针的方法判断链表中是否存在环。
热门推荐
铲屎官必看!如何给猫咪起个好记的名字?
《洞察人性》:读懂人心的秘密武器
文津奖得主推荐:《第一性原理》带你用科学思维理解世界
从细节中寻找智慧:如何用细读批评提升经典阅读
纽约时报推荐:《洞见》,提升你的认知水平!
"中国最牛演员"袁小田:作为醉拳宗师的他,5个儿子个个人中龙凤
无锡梁溪区:老城厢焕发新生的秘密
石家庄小学生乒乓球赛夺冠!这所“冠军学校”有何秘诀?
石家庄小学生必学的几项基础体育技能
花式跳绳:小学生体质提升的“新宠”
天然新鲜骨头:宠物饮食新潮流,科学喂养是关键
中国最美的9所大学,风景独特,人文气息浓厚,适合亲子游
癌胚抗原测定(CEA):原理、方法及临床应用
秋冬腮腺炎高发,绿豆汤+米醋外敷真的有效吗?
汉中之战:刘备与曹操的两年鏖战
陕西汉中走出的9位大富豪,3人身价超百亿,股神林园只能排第二
周末打卡成都心形骑行路线:30公里城市休闲骑行全攻略
成都Cityride火出圈!天府绿道骑行攻略
成都绕城天府绿道:周末骑行打卡胜地
中医辨证治疗吞咽困难:四种证型解析
张平营养师教你:三个小窍门挑选优质橙子
橙子真的不适合胃病患者?真相揭秘!
如何正确吃橙子不伤胃?这份食用指南请收好
广州女厕革命:告别排队尴尬
国家铁路局新规:女厕排队不再难
上海迪士尼迎大客流,警方在园内设置“走失儿童认领处”
喜羊羊大战灰太狼:谁才是真正的发明王者?
妙多多教你如何激发孩子创造力
高血压科普宣教
日本南海大地震:谣言与预警背后的科学真相