一、题目
函数原型:
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
相关推荐
木木子2210 分钟前
# 密码强度检测深度解析:正则表达式实时分析、多维度评分算法与可视化反馈Sw1zzle3 小时前
算法入门(四):二叉树 - 递归遍历三件套万法若空3 小时前
【算法-查找】查找算法海石4 小时前
子树怎么找?树的3种遍历方式来帮忙!海石4 小时前
难度分 1588:思路 + 技巧 = AC珠海西格电力7 小时前
云边端协同架构:零碳园区管理系统的技术底座还有多久拿退休金9 小时前
让飞书知识库跟着 commit 自己长:一套自动化知识库的真实实现KaMeidebaby10 小时前
卡梅德生物技术快报|小 RNA 适配体合成 + 多方法亲和力表征全流程标准化操作手册是Dream呀10 小时前
基于深度学习的人类行为识别算法研究happyprince11 小时前
03_NVIDIA_ModelOpt-量化算法深入