链表中环的入口节点
来源:互联网 发布:四川广电网络招聘 编辑:程序博客网 时间:2024/05/21 21:34
链表中环的入口节点
题目
一个链表中包含环,请找出该链表的环的入口结点。
思想
初始化两个指针fast, low, 开始都指向头结点, fast每下走两步, low每下走一步,如果
链表中有环,则两节点一定会相遇。如果没有环,则fast或者fast.next会先走到空
start: 头结点到相遇节点的距离
step: low指针在环中走过的距离
Distance(low) = start + step;
Distance(fast) = 2 * (start + step);
则 start + step = k * n(n为环的长度, k为正整数)
因为 start + step = k *n, 故头结点,和low指针走start步会在入口节点相遇
代码
/* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/public class Solution { public ListNode EntryNodeOfLoop(ListNode pHead) { if(pHead == null) return null; ListNode fast = pHead; ListNode low = pHead; while(fast != null && fast.next != null) { fast = fast.next.next; low = low.next; if(fast == low) break; } if(fast == null || fast.next == null) return null; fast = pHead; while(fast != low) { fast = fast.next; low = low.next; } return fast; }}
阅读全文
0 0
- 链表中环的入口节点
- 链表中环的入口节点
- 链表中环的入口节点
- 链表中环的入口节点
- 链表中环的入口节点
- 链表中环的入口节点
- 链表中环的入口节点
- 链表中环的入口节点
- 链表中环的入口节点
- 链表中环的入口节点
- 链表中环的入口节点
- 56 - 链表中环的入口节点
- Python :链表中环的入口节点
- 面试题56:链表中环的入口节点
- 剑指Offer:链表中环的入口节点
- 链表中环的入口节点:双快慢指针
- 剑指offer-链表中环的入口节点-php
- 剑指offer----链表中环的入口节点
- 构建最少节点的AVL树~
- D-Bus的几种用法
- 二分查找详解
- c++学习网站
- HTML img图片标签alt和title属性
- 链表中环的入口节点
- Catch that cow bfs + dfs
- 【深入理解计算机系统笔记】Linux 下 程序的链接过程
- CSU-ACM2017暑期训练6-bfs G
- 1.7.关于存储器的内存和外存
- Linux samba安装&配置
- leetcode 2
- xynuoj 磁带最大利用率问题 酒馆浪人的博客
- python ValueError: cannot switch from automatic field numbering to manual field specification