一、题目
函数原型:
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
相关推荐
古城小栈2 小时前
为啥说:训练用BF16,推理用FP16KaMeidebaby2 小时前
卡梅德生物技术快报|蛋白 N 端测序在重组贻贝融合蛋白表征中的应用,解决原核表达序列偏移工艺难题Turbo正则3 小时前
群论在AI中的应用概述ysa0510303 小时前
【并查集】判环Jerry3 小时前
KeetCode 44. 开发商购买土地Jerry3 小时前
KeetCode 58. 区间和Jerry4 小时前
LeetCode 209. 长度最小的子数组彦为君5 小时前
算法思维与经典智力题智能优化与强化学习5 小时前
Gym(Gymnasium)仿真环境详解(二):环境简介、入门算法、调参要点、核心挑战mxwin5 小时前
Unity Shader exp 函数的算法与渲染应用