一、简述
判断一个链表中是否存在环,使用快慢指针,时间复杂度O(n),空间复杂度O(1)。
二、代码实现
bool hasCycle(ListNode *head) {
if(NULL == head){
return false;
}
ListNode *pFirst = head;
ListNode *pSecond = head;
while((NULL != pFirst->next) && (NULL != pSecond->next) && (NULL != pSecond->next->next)){
pFirst = pFirst->next;
pSecond = pSecond->next->next;
if(pFirst == pSecond){
return true;
}
}
return false;
}