141、环形链表
题目:
解答:
快慢指针。如果有环,那么快指针一定能在环上追上慢指针,否则快指针->next会为nullptr
这样只需要遍历一遍,并且空间复杂度小。
class Solution {
public:bool hasCycle(ListNode *head) {ListNode *fast = head;ListNode *slow = head;while(fast && fast->next){fast=fast->next->next;slow=slow->next;if(fast==slow)return true;}return false;}
};
时间复杂度O(n) n为链表长度
空间复杂度O(1)