/* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } }; */ class Solution { public: ListNode* EntryNodeOfLoop(ListNode* pHead) { if(pHead->next==pHead) return pHead; if(pHead->next==nullptr) return nullptr; vector<ListNode*> arr; ListNode* p=pHead; while(p){ int n=arr.size(); for(int i=0;i<n;i++){ if(p->next==arr[i]){ return arr[i]; } } arr.push_back(p); p=p->next; } return nullptr; } };