首页 > 代码库 > 【LeetCode】Linked List Cycle

【LeetCode】Linked List Cycle

Linked List Cycle

Given a linked list, determine if it has a cycle in it.

Follow up:
Can you solve it without using extra space?

 

做完Linked List Cycle II在做这题简直就是阉割版。。

fast每次前进两步,slow每次前进一步,如果相遇则为true,否则false

class Solution 
{
public:
    bool hasCycle(ListNode *head) 
    {
        if(head == NULL)
            return false;
        ListNode* fast = head;
        ListNode* slow = head;
        do
        {
            if(fast->next && slow->next)
            {
                fast = fast->next;
                slow = slow->next;
            }
            else
                return false;
            
            if(fast->next)
                fast = fast->next;
            else
                return false;
        }while(fast != slow);
        
        return true;
    }
};