首页 > 代码库 > 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?

/** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public:    bool hasCycle(ListNode *head) {        ListNode *slow, *fast;        slow = fast = head;        while(true){            if(slow==NULL || fast==NULL || slow->next==NULL || fast->next==NULL){                return false;            }            slow = slow->next;            fast = fast->next->next;            if(slow == fast){                //has a cycle                return true;            }        }    }};

 

Linked List Cycle