
请问这个有没有人会解答,帮助我一下,我不会,帮我答一下吧,如果有会的
/*
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;
}
};