算法 判断单链表是否有环 快慢指针法
作者:互联网
class Solution { public: 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; } };
思路:准备两个指针fast和slow,循环链表,slow指针初始也指向head,每次循环向前走一步,fast指针初始指向head,每次循环向前两步,如果没有环,则快指针会抵达终点,如果有环,那么快指针会追上慢指针
复杂度:时间复杂度O(n),空间复杂度O(1)
标签:head,slow,复杂度,fast,next,单链,有环,指针 来源: https://www.cnblogs.com/liguohao/p/15809094.html