题目大意:判断给定的一个链表是否有环?
题目分析:使用快慢指针,快指针每次走两步,慢指针每次走一步,如果存在环的话,那么它们一定会相遇;如果不存在环的话,快指针会先为空。
代码展示:
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;
}
};

本文介绍了一种使用快慢指针的方法来判断链表中是否存在环。通过让快指针每次移动两步,慢指针每次移动一步的方式,如果两者相遇则说明链表有环。
248

被折叠的 条评论
为什么被折叠?



