链表中环的入口节点
来源:互联网 发布:中国it从业人数 编辑:程序博客网 时间:2024/05/16 07:15
题目描述
一个链表中包含环,请找出该链表的环的入口结点。
思路:
通过141题,我们知道可以通过快慢指针来判断是否有环,现在我们假设两个指针相遇在z点,如图
那么我们可以知道fast指针走过a+b+c+b
slow指针走过a+b
那么2*(a+b) = a+b+c+b
所以a = c
那么此时让slow回到起点,fast依然停在z,两个同时开始走,一次走一步
那么它们最终会相遇在y点,正是环的起始点
class Solution {
public:
ListNode* EntryNodeOfLoop(ListNode* pHead)
{
if(!pHead)
return NULL;
ListNode* fast=pHead;
ListNode* slow=pHead;
do
{
if(fast)fast=fast->next;
if(fast)fast=fast->next;
if(slow)slow=slow->next;
} while(fast!=slow);
slow = pHead;
while(slow!=fast)
{
if(fast)fast=fast->next;
if(slow)slow=slow->next;
}
return fast;
}
};
0 0
- 链表中环的入口节点
- 链表中环的入口节点
- 链表中环的入口节点
- 链表中环的入口节点
- 链表中环的入口节点
- 链表中环的入口节点
- 链表中环的入口节点
- 链表中环的入口节点
- 链表中环的入口节点
- 链表中环的入口节点
- 链表中环的入口节点
- 56 - 链表中环的入口节点
- Python :链表中环的入口节点
- 面试题56:链表中环的入口节点
- 剑指Offer:链表中环的入口节点
- 链表中环的入口节点:双快慢指针
- 剑指offer-链表中环的入口节点-php
- 剑指offer----链表中环的入口节点
- C语言异或运算
- poj 1094 topo 在线处理数据
- ngResource模块的使用
- Eclipse下的Android工程改名
- 最小费用流bellman-ford算法总结
- 链表中环的入口节点
- 赛码网OJ题目--股神
- 设计模式之禅
- 如何减少bug(php 版本)
- magento 修改xml的布局
- 线段树的构造 II
- Ubuntu14.04 LTS下破解myeclipse2015
- Wireshark入门与进阶系列四之过滤语法
- 设计莫原则和模式