搜索
首页数据库mysql教程CCI 2.6 寻找有环链表环路的开头节点

给定一个有环链表,实现以算法返回环路的开头结点。 有环链表的定义 在链表中某个节点的next元素指向它前面出现过的节点,则表明该链表存在环路。 示例 输入:A-B-C-D-E-C(C节点出现两次) 输出:C 分析 : 1,快慢指针法判断链表是否有环 fast每次前移两步,

给定一个有环链表,实现以算法返回环路的开头结点。

有环链表的定义

在链表中某个节点的next元素指向它前面出现过的节点,则表明该链表存在环路。

示例

输入:A->B->C->D->E->C(C节点出现两次)

输出:C

分析

1,快慢指针法判断链表是否有环

fast每次前移两步,slow每次前移一步,两指针若能相遇,则有环,否则没有环。

2,假设链表头到环头移动k步,slow指向环头的时候,fast移动了2*k步,此时两者相距k步,也可以认为快指针再过m*size-k步之后追上慢指针。当两者相遇的时候,则慢指针距离环头还有k步。因为此时不知道k的具体大小,但是知道k是链表头到环头的步数,让fast指向链表头,之后快慢指针每次往后移动一步,两者相遇的地方就是环头。

package test;

public class FindLoopStart {
	public Node findLoopStart(Node head){
		Node fast = head;
		Node slow = head;
		while(fast!=null || fast.next!=null){
			fast = fast.next.next;
			slow = slow.next;
			if(fast == slow)
				break;
		}
		//没有环则返回null
		if(fast==null || fast.next==null)
			return null;
		//相遇之后,slow节点再走k步达到环开头
		//此时,并不知道k的具体值,但是知道k是从链表开头到环头的步数
		//于是,让fast指向链表头,每次往后移一步,则再次相遇的时候,走的步数就是k
		//则相遇地点就是环的开头
		fast = head;
		while(fast != slow){
			fast = fast.next;
			slow = slow.next;
		}
		return slow;
	}
}


声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
命运方舟寻找有烛光闪耀的地方在哪命运方舟寻找有烛光闪耀的地方在哪Mar 20, 2024 pm 05:46 PM

命运方舟新地图新版本的开启也是有着全新声望的任务,除了罗温地图外还有一个日常是在智慧岛的,前置的任务是从贝隆南开启的,很多小伙伴做到“寻找有烛光闪耀的地方”这一环的时候就没有指引的了,也是好奇具体的位置在哪,下面为大家带来该任务的攻略!命运方舟寻找有烛光闪耀的地方任务攻略在智慧岛里面的房间当中,大厅还有个走廊,能够进入到地下室,走进去就可以看到后续任务的位置了,如图:

坂本智彦的算法-寻找星期几坂本智彦的算法-寻找星期几Sep 02, 2023 pm 07:09 PM

在本文中,我们将讨论什么是TomohikoSakamoto算法以及如何使用该算法来识别给定日期是一周中的哪一天。有多种算法可以知道星期几,但这种算法是最强大的一种。该算法以尽可能最小的时间和最小的空间复杂度找到该日期出现的月份中的哪一天。问题陈述-我们根据格鲁吉亚历给出一个日期,我们的任务是使用TomohikoSakamoto的算法找出给定日期是一周中的哪一天。示例输入-日期=30,月份=04,年份=2020输出-给定日期是星期一输入-日期=15,月份=03,年份=2012输出-给定日期是星期四

作业帮app如何寻找同类题型 寻找同类题型方法技巧作业帮app如何寻找同类题型 寻找同类题型方法技巧Mar 12, 2024 pm 03:30 PM

  作业帮app如何寻找同类题型?这是一款非常受学生欢迎的答题软件,在这款软件中,学生们不仅可以快速的查找自己的想要的题型,而且系统还可以给用户们提供相识的类型题目。对于刚接触这款软件的用户们,估计还不知道怎么去寻找相关的题目吧。接下来由小编给你来带来作业帮app寻找同类题型方法技巧,有需要的小伙伴可以进行参考。作业帮app寻找同类题型方法技巧  1、首先在手机桌面中,点击作业帮。  2、然后输入手机号,并获取验证码。  3、接着在打开的页面中,选择学习身份。  4、然后选择所在的年级,并点击进

查询从节点X开始,距离最多为D的子树中的最小权重查询从节点X开始,距离最多为D的子树中的最小权重Aug 25, 2023 am 11:25 AM

在进行计算机编程时,有时需要求出源自特定节点的子树的最小权重,条件是该子树不能包含距离指定节点超过D个单位的节点。这个问题出现在各个领域和应用中,包括图论、基于树的算法和网络优化。子树是较大树结构的子集,指定的节点作为子树的根节点。子树包含根节点的所有后代及其连接边。节点的权重是指分配给该节点的特定值,可以表示其重要性、重要性或其他相关指标。在这个问题中,目标是找到子树中所有节点中的最小权重,同时将子树限制在距离根节点最多D个单位的节点。在下面的文章中,我们将深入研究从子树中挖掘最小权重的复杂性

jQuery字符串的首字母是哪些?jQuery字符串的首字母是哪些?Feb 23, 2024 pm 10:48 PM

jQuery是一个流行的JavaScript库,用于简化HTML文档的遍历、操作和事件处理。在使用jQuery时,经常会涉及到对字符串的操作,比如判断字符串的开头字符。在jQuery中,判断一个字符串的开头字符可以通过多种方式来实现,下面将详细介绍几种常用的方法,并附上相应的代码示例。使用indexOf()方法:通过比较字符串的第一个字符来确定开头字符。va

找不到msvcp100.dll怎么办找不到msvcp100.dll怎么办Jan 12, 2024 pm 01:42 PM

msvcp100.dll文件是运行许多程序的重要软件!如果msvcp100.dll文件出现了丢失或者找不到的情况那么将会有很多的程序无法进行运行!今天小编就为大家带来了msvcp100.dll文件丢失修复方法!一起来看看吧。找不到msvcp100.dll解决办法:方法一:一:点击下载msvcp100.dll文件。二:将下载好的文件解压后复制到将与电脑系统对应的文件夹中。1、Windows95/98/Me系统,复制到C:WindowsSystem目录下。2、WindowsNT/2000系统,复制到

C程序寻找到达末尾的最小跳数C程序寻找到达末尾的最小跳数Aug 26, 2023 am 11:41 AM

给定一个非负整数数组,表示最大数量可以从该元素向前迈出的步骤。指针最初位于数组的第一个索引[0索引]处。你的目标是到达最后最少步数中数组的索引。如果无法到达数组末尾,然后打印最大整数。天真的方法是从初始{主要}组件开始,并递归调用可从第一个元素访问的所有组件。从第一个到达末尾的最小跳转范围是使用从第一个可访问的元素到达末尾所需的最小跳转范围来计算的。minJumps(start,end)=Min(minJumps(k,end))forallkaccessiblefromthestart在这里,我

如何通过Vue和jsmind实现思维导图的节点复制和剪切功能?如何通过Vue和jsmind实现思维导图的节点复制和剪切功能?Aug 15, 2023 pm 05:57 PM

如何通过Vue和jsmind实现思维导图的节点复制和剪切功能?思维导图是一种常见的思维工具,能够帮助我们整理思路、梳理思维逻辑。而节点复制和剪切功能是思维导图中常用的操作,能让我们更方便地重复利用已有的节点,提高思维整理的效率。在本文中,我们将使用Vue和jsmind这两个工具来实现思维导图的节点复制和剪切功能。首先,我们需要安装Vue和jsmind,并创建

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境