题目大意:判断给定的一个链表是否有环?
题目分析:使用快慢指针,快指针每次走两步,慢指针每次走一步,如果存在环的话,那么它们一定会相遇;如果不存在环的话,快指针会先为空。
代码展示:
class Solution {
public:
bool hasCycle(ListNode *head) {
if(head==NULL || head->next==NULL)
return false;
ListNode *slow = head;
ListNode *fast = head->next;
bool flag = true;
while(slow!=fast){
if(fast->next!=NULL)
fast = fast->next;
else{
flag = false;
break;
}
if(fast->next!=NULL)
fast = fast->next;
else{
flag = false;
break;
}
slow = slow->next;
}
return flag;
}
};
版权声明:本文为Jaster_wisdom原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。