文章目录
- 1.题目
- 2.代码
1.题目
- 题目要求
- 思路:该题目需要返回链表环的起始位置
如上图所示,按照代码快慢指针的含义他们肯定在node=-4的时候相遇,接着往后再走一个节点,刚好就是链表环的起始节点
2.代码
class Solution{
public:
LisNode* detectCycle(ListNode* head)
{
ListNode* slow=head,fast=head;
while(fast && fast->next)
{
slow=slow->next;
fast=fast->next->next;
if (slow==fast)
{
ListNode* slow2=head;
while (slow2!=slow)
{
slow2=slow2->next;
slow=slow->next;
}
return slow2;
}
}
return NULL:
}
};