LeetCode 141
https://leetcode.cn/problems/linked-list-cycle/description/
难度:简单
这道题目的做法是快慢指针。快指针每次走两步,慢指针每次走一步,如果快慢指针相等,说明链表有环。
时间复杂度:O(n),其中 n 为链表的长度。
空间复杂度:O(1),仅用到若干额外变量。
class Solution {
public:
bool hasCycle(ListNode *head) {
ListNode* dummy = new ListNode();
dummy->next = head;
ListNode* slow = dummy, *fast = dummy;
while (fast && fast->next) {
slow = slow->next;
fast = fast->next->next;
if (slow == fast) {
return true;
}
}
return false;
}
};