请问这个有没有人会解答,帮助我一下,我不会,帮我答一下吧,如果有会的

img


请问这个有没有人会解答,帮助我一下,我不会,帮我答一下吧,如果有会的


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