0%

代码随想录第十二天

链表-环形链表II

题目链接

这道题感觉还是有点难,看了这篇题解觉得很清楚详细。其实代码很简单,理清楚逻辑很重要。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 struct ListNode *detectCycle(struct ListNode *head) {
typedef struct ListNode ListNode;
ListNode* fast = head;
ListNode* slow = head;

while(true){
if(fast == NULL || fast->next == NULL)return NULL;
fast =fast->next->next;
slow = slow->next;
if(fast == slow)break;
}
fast = head;
while(fast != slow){
fast = fast->next;
slow = slow->next;
}

return fast;

}