1Floyd's Cycle Detection 快慢指標偵測環
考點:Singly/Doubly Linked List:基本操作與優缺點比較
slow 每次走 1 步、fast 每次走 2 步;有環時兩者會相遇,無環時 fast 先走到 nullptr。
bool hasCycle(Node* head) {
Node *slow = head, *fast = head;
while (fast != nullptr && fast->next != nullptr) {
slow = slow->next;
fast = fast->next->next;
if (slow == fast) return true; // 相遇即有環
}
return false; // fast 走到底,無環
}
時間 ,空間 。
