Linked Lists: Detect a Cycle

  • + 1 comment

    Cpp solution with O(n) complexity.

    bool has_cycle(Node* head) {
        map<Node*, int> ptrMap;
        Node *currPtr = head;
        while(currPtr != nullptr)
        {
            if(ptrMap.find(currPtr) != ptrMap.end())
            {
                return true;
            }
            ptrMap[currPtr]++;
            currPtr = currPtr->next;
        }
        return false;
    }