一、题目
函数原型:
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
相关推荐
超级码力6661 小时前
【Latex文件架构】Latex文件架构模板穿条秋裤到处跑1 小时前
每日一道leetcode(2026.04.29):二维网格图中探测环Merlos_wind2 小时前
HashMap详解汉克老师2 小时前
GESP2025年3月认证C++五级( 第三部分编程题(1、平均分配))Yzzz-F5 小时前
Problem - 2205D - Codeforces智者知已应修善业5 小时前
【51单片机2个按键控制流水灯运行与暂停】2023-9-6Halo_tjn5 小时前
Java Set集合相关知识点生成论实验室6 小时前
《事件关系阴阳博弈动力学:识势应势之道》第四篇:降U动力学——认知确定度的自驱演化AI科技星6 小时前
全域数学·72分册:场计算机卷【乖乖数学】科研前沿7 小时前
镜像孪生VS视频孪生核心技术产品核心优势