一、题目
函数原型:
bool hasCycle(struct ListNode *head)
二、算法判断不是环形链表,只需遍历链表找到空结点即可。
判断是环形链表,由于链表是环形的,遍历不会永远不会结束。所以要设置快慢指针,慢指针一次走一步,快指针一次走两步。当两个指针都进入环时,快指针走地比慢指针快,因此快指针总会遇到慢指针。因此,判断是环形链表的条件是慢指针等于快指针。
三、代码
cppbool hasCycle(struct ListNode *head) { struct ListNode *fast=head; struct ListNode *slow=head; while(fast&&fast->next) { fast=fast->next->next; slow=slow->next; if(fast==slow) return true; } return false; }
leetcode:141. 环形链表
南林yan2023-11-08 20:02
相关推荐
小郎君6587 分钟前
MPTT树复选框的半选状态:一棵百万节点树从递归到计数器,再到区间覆盖酌沧9 分钟前
MemT让记忆成为模型内生能力hold?fish:palm24 分钟前
40 二叉树的直径Shimeri1 小时前
越卷越像:我用遗传算法做了个"内卷"实验Evand J1 小时前
【PMSM例程1】永磁同步电机(PMSM)转速与转子电角度观测算法|基于扩展卡尔曼滤波(EKF)的传感器状态估计与误差。附下载链接guo_wen_qiang1 小时前
二叉树的层序遍历-使用双端队列Deque爱读书的小胖2 小时前
LeetCode 55 跳跃游戏 C 语言解题分析CCblandy2 小时前
前缀缓存命中率不靠引擎靠排列:本机仿真 3 轮,易变字段放开头 98.0%→0.0%上班摸鱼下班游戏2 小时前
Unity 仿生智能算法 从蚁群算法 开始pipixia200332 小时前
C++ 面试高频:namespace 的 6 个知识点,从 using 到匿名命名空间