142. 环形链表 II 双指针法
思路:
第一次相遇时: fast走的步数是slow的2倍,即:f=2s
fast比slow多走了n个环,假设环的长度是b,f=s+nb 因此有f=2nb, s=nb
分析: 让指针从头部一直走k步,那么所有走到链表入口节点时的步数是:k=a+nb.而目前slow已经走了nb,因此再让slow走a步就到入口处了。
第二次相遇时: slow位置不变,fast指向头结点,slow与fast每次都只走一步,再相遇时的节点即是入口节点。
public ListNode detectCycle(ListNode head) {ListNode slow = head;ListNode fast = head;while(slow != null && fast != null){if(slow.next != null)slow = slow.next;else break;if(fast.next != null && fast.next.next != null)fast = fast.next.next;else break;if(slow == fast){fast = head;while(slow != fast){slow = slow.next;fast = fast.next;}return slow;}}return null;}
142. 环形链表 II 双指针法相关推荐
- LeetCode 142. 环形链表 II - Python 快慢指针法+详解
题目 142. 环形链表 II 难度中等761 给定一个链表,返回链表开始入环的第一个节点. 如果链表无环,则返回 null. 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的 ...
- 【Leetcode】拿捏链表(四)——160. 相交链表、141. 环形链表、142. 环形链表 II
作者:一个喜欢猫咪的的程序员 专栏:<Leetcode> 喜欢的话:世间因为少年的挺身而出,而更加瑰丽. --<人民 ...
- 142. 环形链表 II
142. 环形链表 II 给定一个链表,返回链表开始入环的第一个节点. 如果链表无环,则返回 null. 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始 ...
- LeetCode-链表-142. 环形链表 II
描述 142. 环形链表 II 给定一个链表,返回链表开始入环的第一个节点. 如果链表无环,则返回 null. 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 ...
- 142. 环形链表 II golang
142. 环形链表 II 给定一个链表,返回链表开始入环的第一个节点. 如果链表无环,则返回 null. 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始 ...
- LeetCode 142 环形链表 II
题目描述 给定一个链表,返回链表开始入环的第一个节点. 如果链表无环,则返回 null.为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开 始). 如果 po ...
- 【LeetCode】【HOT】142. 环形链表 II(快慢指针)
[LeetCode][HOT]142. 环形链表 II 文章目录 [LeetCode][HOT]142. 环形链表 II package hot;class ListNode{int val;List ...
- LeetCode 142. 环形链表 II(Linked List Cycle II)
142. 环形链表 II 142. Linked List Cycle II 题目描述 给定一个链表,返回链表开始入环的第一个节点.如果链表无环,则返回 null. 为了表示给定链表中的环,我们使用整 ...
- 如何判断链表中是否存在环?Floyd判圈算法 leetcode刷题笔记 142. 环形链表 II
这道题使用了floyd判圈算法,所以先讲解floyd算法的原理和实现,最后在附加上第142题的代码. floyd算法: 一.用途: 可以在有限状态机.迭代函数或者链表上判断是否存在环,求出该环的起点与 ...
- 【LeetCode笔记】142. 环形链表 II(Java、快慢指针)
文章目录 题目描述 思路 & 代码 更新版 三刷 - 再更新 题目描述 相对于环形链表,这里要求找到环的起点 难点在于 O(1),否则可以直接哈希表冲 思路 & 代码 找出快慢指针的路 ...
最新文章
- 这家公司不要求996,但照样市值万亿!
- Citrix各系列产品安装光盘资源下载链接
- 移动web开发ajax缓存操作
- linux ffmpeg yum源,ffmpeg最新的yum源地址及视频去logo
- Windows Management Framework 中修改WinRM监听端口
- delay在java中有什么用_DelayQueue怎么在Java多线程并发开发中使用
- 【Mac】mac安装go
- 使用预先训练的SSD模型检测害虫
- PL/SQL学习笔记(二)
- 20190415 - iOS11 无法连接到 App Store 的解决办法
- python 数据去重 max()_荐 用 Python 对 Excel 表格内数据进行去重、分类,标记异常及分析...
- Apollo canbus模块学习笔记
- Origin拟合Gompertz模型描述产甲烷过程
- 在家如何下载nature中的文献
- SQL Server 2008 R2 是免费版下载地址
- word公式常用字体
- python生成excel文件报扩展名错误_在python中打开扩展名为.xls的文本文件时出错
- Perl读取文件信息
- 实现表格隔行变色研究
- FLUX-TMS-物流整体解决方案 附下载地址
热门文章
- 项目管理常用的工具推荐——WBS、甘特图、燃尽图
- 史上最详细Win10系统装成Win7系统教程
- python mp4提取音频,利用python提取视频中的音频
- 安卓socket客户端
- boxy 你用了吗??
- Google高级搜索语法指令
- 坚果pro2官方rom_坚果 pro2线刷包_坚果 pro2刷机包_坚果 pro2固件包_坚果 pro2救砖包 - 线刷宝ROM中心...
- GICv3软件overview手册之配置GIC
- swiper 用了effect:'fade', 切换效果 一定要用 参数crossFade 否则多个slide会叠再一起
- idea项目启动报错 Failed to parse configuration class [com.epoint.FrameWebApplication]