class Solution {
public:
    bool hasCycle(ListNode *head) {
        if(!head) return false;
        ListNode* p = head;
        ListNode* q = head;
        while(p){
            p = p->next;
            q = q->next;
            if(p){
                p = p->next;
                if(p==q) return true;
            }
        }

        return false;
    }
};