1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
bool has_cycle(SinglyLinkedListNode* head) { if(!head) return false; SinglyLinkedListNode* slow = head; SinglyLinkedListNode* fast = head; while(fast && fast->next) { slow = slow->next; fast = fast->next->next; if(slow == fast) return true; } return false; }