leetcode 142.环形链表
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
struct ListNode *detectCycle(struct ListNode *head) {
typedef struct ListNode ListNode;
ListNode* quick=head,*slow=head,*mark1=head,*mark2=NULL;
while(quick!=NULL&&quick->next!=NULL)
{
quick=quick->next->next;
slow=slow->next;
if(quick==slow)
{
mark2=quick;
while(mark1!=mark2)
{
mark1=mark1->next;
mark2=mark2->next;
}
return mark2;
}
}
return mark2;
}