首页 > 代码库 > 判断单链是否循环,并且找出第一个循环节点
判断单链是否循环,并且找出第一个循环节点
介绍
判断单链是否循环,并且找出第一个循环节点。
思路
【判断单链是否循环】:如果单链是循环的,那么循环部分就是封闭的。这好比一个田径运动场,当两个人跑步时,开始虽然有一定的间距,但他们迟早会相遇的。
顺其自然的我们从中抽取一个数学模型,一个是步长Steps(对应两人刚开始跑步时的间距);一个是判断单链循环的条件nodeX==nodeY(两人“相遇”)。
【找出第一个循环节点】:我想过好多其它方法,实现起来都比较难,后来出去骑行了两个小时,回来后就想到借助Hash存储,Hash元素包含判断,结果实现起来既容易,又好懂。
比如:下图就是一个循环单链,第一个循环节点为3。
package shuai.study.link.circle; import java.util.HashSet; import java.util.Set; class Node { String data = http://www.mamicode.com/null;>
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。