策码奔腾

快慢指针判断链表中是否存在循环

给链表设置快慢两个指针,每次移动时,快指针的速度是慢指针的一倍。即每次快指针移动两次,慢指针移动一次。

如果存在循环,快指针跑两圈就可以追上慢指针。

 

为什么不让慢指针停在原地等呢?

因为循环有可能出现在中间位置。如此一来,循环过的位置就不必从头再循环。

 

整个过程的所有位置快指针两遍,慢指针一遍,即三遍循环。因此,时间复杂度为(On)

posted @ 2023-04-24 11:22  策码奔腾  阅读(15)  评论(0编辑  收藏  举报
console.log('欢迎');