一、题目
函数原型:
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
相关推荐
进击的小头10 分钟前
第15篇:MPC的发展方向及展望We་ct18 分钟前
LeetCode 35. 搜索插入位置:二分查找的经典应用IT猿手30 分钟前
基于 ZOH 离散化与增量 PID 的四旋翼无人机轨迹跟踪控制研究,MATLAB代码A923A34 分钟前
【洛谷刷题 | 第五天】Navigator_Z1 小时前
LeetCode //C - 990. Satisfiability of Equality Equationsbbbb3651 小时前
图算法的最优路径搜索与边界约束建模的技术7東雪木1 小时前
编程算法学习——栈与队列算法CSDN_Colinw1 小时前
C++中的工厂方法模式liulilittle1 小时前
范围随机算法实现2401_857918292 小时前
C++中的访问者模式实战