一、题目
函数原型:
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 小时前
openclaw 盯盘实践MobotStone5 小时前
Google发布Nano Banana 2:更快更便宜,图片生成能力全面升级颜酱9 小时前
队列练习系列:从基础到进阶的完整实现用户5757303346249 小时前
两数之和:从 JSON 对象到 Map,大厂面试官到底在考察什么?程序猿追9 小时前
“马”上行动:手把手教你基于灵珠平台打造春节“全能数字管家”ZPC82101 天前
docker 镜像备份ZPC82101 天前
docker 使用GUI ROS2琢磨先生David1 天前
Day1:基础入门·两数之和(LeetCode 1)颜酱1 天前
栈的经典应用:从基础到进阶,解决LeetCode高频栈类问题多恩Stone1 天前
【C++入门扫盲1】C++ 与 Python:类型、编译器/解释器与 CPU 的关系