一、题目
函数原型:
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
相关推荐
朝朝辞暮i26 分钟前
C++ 第 23 课:class —— 开始真正进入面向对象Evand J1 小时前
【MATLAB例程】三维RRT+APF避障路径规划与到达角(AOA)定位算法|三维路径优化与定位仿真例程leikooo1 小时前
用餐厅和盘子理解栈和堆weixin_307779132 小时前
有限产能智能排产与动态重排智能体:从需求解构到技术实现朝朝辞暮i3 小时前
C++ 第 27 课:智能指针 shared_ptr朝朝辞暮i3 小时前
C++ 第 29 课:回调函数 CallbackGodspeed Zhao3 小时前
现代智能雷达技术14——算法(0)可乐ea4 小时前
Agent 模型分级升级路由:用置信度阈值把贵模型省下来Navigator_Z4 小时前
LeetCode //C - 1278. Palindrome Partitioning IIIGodspeed Zhao4 小时前
现代智能雷达技术18——算法(4)