/* struct ListNode { int val; struct ListNode next; ListNode(int x) : val(x), next(NULL) { } }; / class Solution { public: ListNode EntryNodeOfLoop(ListNode pHead) { ListNode * test = pHead; if(test->next == nullptr){ return nullptr; } ListNode * fast = pHead; ListNode * slow = pHead; while(fast && slow){ fast = fast->next->next; slow = slow->next; if(fast == nullptr || fast->next == nullptr){ return nullptr; } else if(fast == slow){ break; } } fast = pHead; while(fast != slow){ fast = fast -> next; slow = slow -> next; } return slow; } };