思路:
第一次相遇时: 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 双指针法相关推荐

  1. LeetCode 142. 环形链表 II - Python 快慢指针法+详解

    题目 142. 环形链表 II 难度中等761 给定一个链表,返回链表开始入环的第一个节点. 如果链表无环,则返回 null. 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的 ...

  2. 【Leetcode】拿捏链表(四)——160. 相交链表、141. 环形链表、142. 环形链表 II

    作者:一个喜欢猫咪的的程序员 专栏:<Leetcode> 喜欢的话:世间因为少年的挺身而出,而更加瑰丽.                                  --<人民 ...

  3. 142. 环形链表 II

    142. 环形链表 II 给定一个链表,返回链表开始入环的第一个节点. 如果链表无环,则返回 null. 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始 ...

  4. LeetCode-链表-142. 环形链表 II

    描述 142. 环形链表 II 给定一个链表,返回链表开始入环的第一个节点. 如果链表无环,则返回 null. 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 ...

  5. 142. 环形链表 II golang

    142. 环形链表 II 给定一个链表,返回链表开始入环的第一个节点. 如果链表无环,则返回 null. 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始 ...

  6. LeetCode 142 环形链表 II

    题目描述 给定一个链表,返回链表开始入环的第一个节点. 如果链表无环,则返回 null.为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开 始). 如果 po ...

  7. 【LeetCode】【HOT】142. 环形链表 II(快慢指针)

    [LeetCode][HOT]142. 环形链表 II 文章目录 [LeetCode][HOT]142. 环形链表 II package hot;class ListNode{int val;List ...

  8. LeetCode 142. 环形链表 II(Linked List Cycle II)

    142. 环形链表 II 142. Linked List Cycle II 题目描述 给定一个链表,返回链表开始入环的第一个节点.如果链表无环,则返回 null. 为了表示给定链表中的环,我们使用整 ...

  9. 如何判断链表中是否存在环?Floyd判圈算法 leetcode刷题笔记 142. 环形链表 II

    这道题使用了floyd判圈算法,所以先讲解floyd算法的原理和实现,最后在附加上第142题的代码. floyd算法: 一.用途: 可以在有限状态机.迭代函数或者链表上判断是否存在环,求出该环的起点与 ...

  10. 【LeetCode笔记】142. 环形链表 II(Java、快慢指针)

    文章目录 题目描述 思路 & 代码 更新版 三刷 - 再更新 题目描述 相对于环形链表,这里要求找到环的起点 难点在于 O(1),否则可以直接哈希表冲 思路 & 代码 找出快慢指针的路 ...

最新文章

  1. 这家公司不要求996,但照样市值万亿!
  2. Citrix各系列产品安装光盘资源下载链接
  3. 移动web开发ajax缓存操作
  4. linux ffmpeg yum源,ffmpeg最新的yum源地址及视频去logo
  5. Windows Management Framework 中修改WinRM监听端口
  6. delay在java中有什么用_DelayQueue怎么在Java多线程并发开发中使用
  7. 【Mac】mac安装go
  8. 使用预先训练的SSD模型检测害虫
  9. PL/SQL学习笔记(二)
  10. 20190415 - iOS11 无法连接到 App Store 的解决办法
  11. python 数据去重 max()_荐 用 Python 对 Excel 表格内数据进行去重、分类,标记异常及分析...
  12. Apollo canbus模块学习笔记
  13. Origin拟合Gompertz模型描述产甲烷过程
  14. 在家如何下载nature中的文献
  15. SQL Server 2008 R2 是免费版下载地址
  16. word公式常用字体
  17. python生成excel文件报扩展名错误_在python中打开扩展名为.xls的文本文件时出错
  18. Perl读取文件信息
  19. 实现表格隔行变色研究
  20. FLUX-TMS-物流整体解决方案 附下载地址

热门文章

  1. 项目管理常用的工具推荐——WBS、甘特图、燃尽图
  2. 史上最详细Win10系统装成Win7系统教程
  3. python mp4提取音频,利用python提取视频中的音频
  4. 安卓socket客户端
  5. boxy 你用了吗??
  6. Google高级搜索语法指令
  7. 坚果pro2官方rom_坚果 pro2线刷包_坚果 pro2刷机包_坚果 pro2固件包_坚果 pro2救砖包 - 线刷宝ROM中心...
  8. GICv3软件overview手册之配置GIC
  9. swiper 用了effect:'fade', 切换效果 一定要用 参数crossFade 否则多个slide会叠再一起
  10. idea项目启动报错 Failed to parse configuration class [com.epoint.FrameWebApplication]