一、题目
函数原型:
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 分钟前
泰勒级数与泰勒展开:GNSS卫地距线性化、Jacobian矩阵与Hessian矩阵垆边人似月.8 分钟前
华为题:每日温度Sylvia-girl21 分钟前
堆排序算法Peregrine926 分钟前
数据结构 - > 树和二叉树我是人✓34 分钟前
Java面向对象核心特性深度解析j7~34 分钟前
【算法】专题四.前缀和:一维二维模板,配套 LeetCode 真题,结合同余定理、哈希前缀和,搞定子数组与子矩阵区间求和问题。看浪的路人38 分钟前
第1讲:2026 大模型应用开发全景——Prompt / RAG / 微调 / Agent 到底先用哪个怕浪猫43 分钟前
AI Agent 的安全怎么保障?面试最后一关的终极问题晓德1 小时前
7、LLM 模型是怎么训练生成的?(4)指令微调启观川1 小时前
数据结构与算法 -第 3 章 常用算法-回溯算法