class Solution { public: ListNode* EntryNodeOfLoop(ListNode* pHead) { ListNode* slow = pHead; ListNode* fast = pHead; do { slow = slow->next; if (slow != nullptr) fast = fast->next->next; else return nullptr; if (fast == nullptr) return nullptr; } while (slow != fast); slow = pHead; while (slow != fast) { slow = slow->next; fast = fast->next; } return slow; } };