题目描述
一个链表中包含环,请找出该链表的环的入口结点
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :val(x), next(NULL) {}
};
/*思路:设置两个指针p1和p2,如果链表中有n个结点,指针p1先向前移动n个结点,然后两个指针以相同速度向前移动,当两个指针相遇的结点就是环的入口结点。
如何统计环中结点个数n:设置一快一慢两个指针pSlow和pFast,如果链表中有环,两指针必定在环中某个结点出相遇。从此结点开始计数,当再次到达此结点时,就可以得到环中结点数*/
class Solution {
public:
ListNode* EntryNodeOfLoop(ListNode*