/* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } }; */ #include <variant> class Solution { public: ListNode* EntryNodeOfLoop(ListNode* pHead) { unordered_set<ListNode*> visited; while(pHead) { if(visited.count(pHead)) return pHead; visited.insert(pHead); pHead=pHead->next; } return nullptr; } };