一、题目
函数原型:
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
相关推荐
Chen—LSN29 分钟前
C语言——文件操作(2)程序员yu1 小时前
会编网络:别被入门教程骗了,Python实用能力不在语法本身Allen_LVyingbo2 小时前
信息化部门在AI时代的编程转移路径分析(上)七牛云行业应用2 小时前
Jev 报 401 / api_key_required 怎么解决:TypeSafe AI 官方错误码表与排查步骤晴天的雨.9922 小时前
【C++算法】三数之和多多爱学习3 小时前
括号有几层?得看还有多少个左括号没闭合续写烂尾3 小时前
MK SD NAND(贴片式TF卡)替代Nor Flash:1Gb容量与256Mb Noru0111026754 小时前
图片预览越来越占内存聊聊 URL.createObjectURL 的释放时机Zane19944 小时前
同样是遍历图,为什么BFS能保证找到最短路径,DFS却不行无限码力4 小时前
2026华为OD机试真题 新系统 9月27日【坚果巧克力】