一、题目
函数原型:
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
相关推荐
Gigavision4 小时前
基于BUAA-MIHR数据集的噪声解耦对比学习算法鹿角片ljp5 小时前
LeetCode 64:最小路径和复盘|二维 DP 与 ACM 模式完整写法彧azz6 小时前
算法设计与分析:贪心与动态规划Beyond_System|系统之外7 小时前
【学编程】Python基础编程题100道(21-60)漂流瓶jz8 小时前
UVA-1442 洞穴 题解答案代码 算法竞赛入门经典第二版圣保罗的大教堂8 小时前
leetcode 835. 图像重叠 中等叠层归一研究院10 小时前
基于极限自指的叠层归一宇宙结构理论——无元外部封闭系统的内生区分模型Selvaggia11 小时前
Diffusion Model 的基本原理与模型架构wabs66612 小时前
关于二叉树【力扣572.另一棵树的子树的思考】hanlin0312 小时前
刷题笔记:力扣第41题-缺失的第一个正数