LeetCode每日一题,141. Linked List Cycle
先看题目描述
大意就是给定一个链表,让我们判断链表中是否存在环
算法和思路
快慢指针
我们可以定义两个指针 slow 和 fast,slow 指针每次移动一步,fast 指针每次移动两步,我们经分析很容易得到,若链表中存在环,则 slow 指针和 fast 指针必然会相遇;若不存在环,则 fast 指针必先变为空指针
那么我们只需在移动 slow 和 fast 指针的过程中进行判断即可,若 slow 和 fast 指针相遇,说明链表中存在环,返回 true;若 fast 指针变为空指针,说明链表中不存在环,返回 false。若要求环的长度,则 环的长度就是 slow 指针和 fast 指针从第一次相遇到第二次相遇时,fast 指针比 slow 指针多走的步数
算法源码
1 | /** |