一、题目
函数原型:
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
相关推荐
兰令水6 小时前
leecodecode【状态机DP】【2026.6.9打卡-java版本】8Qi86 小时前
LeetCode 5:最长回文子串(Longest Palindromic Substring)—— 题解j7~6 小时前
【算法】专题一:双指针之移动零,复写零,快乐数lqqjuly6 小时前
KAN 网络深度解析阿里matlab建模师6 小时前
【机场停机位分配】matlab实现基于遗传算法的机场停机位分配优化研究小雨下雨的雨12 小时前
井字棋AI机器人实现详解 - Minimax算法实战-鸿蒙PC Electron框架完成xieliyu.14 小时前
Java算法精讲:双指针(三)一条小锦吕*15 小时前
基于Spring Boot + 数据可视化 + 协同过滤算法的推荐系统设计与实现(源码+论文+部署全讲解)如竟没有火炬16 小时前
最大矩阵——单调栈8Qi817 小时前
LeetCode 1143 & 718:最长公共子序列 / 最长重复子数组