思路:双指针法,设置快慢双指针。假如有环,快指针一定会和慢指针相遇。假如无环,快指针一定首先到达链表尾部。
bool hasCycle(ListNode *head) {
ListNode *slow = head;
ListNode *fast = head;
while(fast !=NULL){
slow = slow->next;
if(fast->next)
fast = fast->next->next;
else
return false;
if(slow==fast)
return true;
}
return false;
}
本文介绍了一种使用快慢指针法来判断链表是否存在环的有效算法。通过设置两个速度不同的指针,在遍历过程中判断两者是否会在某个节点相遇,以此来确定链表是否有环。
295

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



