LeetCode 141 Linked List Cycle
题干:
判断链表是否有环。
解:
详见链表判环。
同样快慢指针的思想,每当慢指针slow前进一步时,快指针fast前进两步。
若快指针fast最终遇到空指针,说明没有环;若fast最终和slow相遇,那肯定是fast超过了slow一圈,说明链表中含有环。
bool hasCycle(ListNode *head) {
ListNode* fast = head, *slow = head;
while(fast && fast->next){ //慢指针走一步,快指针走两步
fast = fast->next->next;
slow = slow->next;
if(fast == slow) return true; //快慢指针相遇,说明含有环
}
return false;
}