Linked List Cycle II

原创 2015年07月09日 11:17:33
<pre name="code" class="cpp">/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    ListNode *detectCycle(ListNode *head) {
         ListNode* h1 = head, *h2 = head;
         //h1走一步,h2走两步,两个值必定会相遇
         while(NULL != h1 && NULL != h2)
         {
             h1 = h1->next;
             h2 = h2->next;
             if(h2 == NULL)
                return NULL;
            h2 = h2->next;
            
            if(h1 == h2)//如果相遇,则表示有环。
            {
                h1 = head;
                
                while(h1 != NULL && h2 != NULL)//一个从头走,一个从之前相遇的位置走,则必定会在第一个相交点遇见。
                {    
                    if(h1 == h2)//说明head就是第一个相遇点
                    {
                        return h1;
                    }
                    h1 = h1->next;
                    h2 = h2->next;
                }
                
                break;
            }
         }
         return NULL;
    }
};



                    

LeetCode linked-list-cycle-ii找到链表的环

题目 Given a linked list, return the node where the cycle begins. If there is no cycle, return null....
  • kxp9545
  • kxp9545
  • 2017年07月31日 20:27
  • 174

Linked List Cycle II (Java)

Given a linked list, return the node where the cycle begins. If there is no cycle, return null. F...

LeetCode 142. Linked List Cycle II

要求用O(1)的空间确定链表中环的起始结点: 使用slow, fast指针,

LeetCode——Linked List Cycle II

若同时从一个环的某个点出发,fast指针每次走两步,slow指针每次走一步,则可证明slow指针走回起点时,fast指针也恰好到达起点。两种思路:一、fast指针每次比slow指针多走一步,fast指...

LeetCode :: Linked List Cycle I and II

I.Given a linked list, determine if it has a cycle in it. II. Given a linked list, return the nod...

Leetcode 142: Linked List Cycle II & Leetcode 287: Find the Duplicate Number

Leetcode 142: Given a linked list, return the node where the cycle begins. If there is no cycle, ...
  • senliuy
  • senliuy
  • 2016年04月13日 13:48
  • 141

[Leetcode] Linked List Cycle II里程碑

开始刷leetcode的题也有接近两个月了吧,自从上个月自不量力地去了两家互联网公司面试被血虐了一番之后下定决心好好通过leetcode来增强自己的编程能力以来,基本每天都会在leetcode上做题,...

Leetcode在线编程linked-list-cycle-ii

Leetcode在线编程linked-list-cycle-ii 循环链表找开始位置 快慢指针 思维

[题解][LeetCode][Linked List Cycle II]

题目: Given a linked list, return the node where the cycle begins. If there is no cycle, return n...

leetcode笔记--Linked List Cycle II

题目:难度(Medium) Given a linked list, return the node where the cycle begins. If there is no cycle, re...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linked List Cycle II
举报原因:
原因补充:

(最多只允许输入30个字)