判断链表中是否有环
给定一个链表,判断链表中是否有环。
示例:
输入:head = [3,2,0,-4], pos = 1
输出:true
解释:链表中有一个环,其尾部连接到第二个节点。
bool hasCycle(struct ListNode* head) {
struct ListNode* fast, * slow;
fast = slow = head;
while (fast && fast->next) {
slow = slow->next;
fast = fast->next->next;//如果快指针走两步以上,可能会错过重合点,导致效率低下,甚至可能永远不能相遇
if (fast == slow) {
return true;
}
}
return false;
}