LeetCode练习 判断单链表是否有环
//判断单链表是否有环
//快慢指针法,慢指针一次走一步,快指针一次走两步,若有环快慢指针一定能相遇
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
bool hasCycle(struct ListNode *head) {
if(head==NULL||head->next==NULL){
return false;
}
struct ListNode* slow=head;
struct ListNode* fast=head;
while(1){
if(slow->next==NULL){
return false;
}
slow=slow->next;
if(fast->next==NULL){
return false;
}
fast=fast->next->next;
if(fast==NULL){
return false;
}
if(slow==fast){
return true;
}
}
}