一、题目
函数原型:
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
相关推荐
zxsz_com_cn6 分钟前
设备预测性维护系统实战指南:架构、算法与落地路径爪哇部落算法小助手10 分钟前
爪哇周赛 Round 3吃着火锅x唱着歌24 分钟前
LeetCode 3623.统计梯形的数目 I吃着火锅x唱着歌37 分钟前
LeetCode 2364.统计坏数对的数目qq_3363139341 分钟前
java基础-set类集合进阶嵌入式老牛1 小时前
第13章 图像处理之Harris角点检测算法(二)渡我白衣1 小时前
哈希的暴力美学——std::unordered_map 的底层风暴、扩容黑盒与哈希冲突终极博弈zl_vslam1 小时前
SLAM中的非线性优-3D图优化之相对位姿Between Factor(六)budingxiaomoli1 小时前
算法--位运算熊猫_豆豆1 小时前
基于A*算法的雷雨绕飞路径MATLAB实现