一、题目
函数原型:
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
相关推荐
代码不停22 分钟前
Java前缀和算法题目练习courniche26 分钟前
分组密码常见结构简介涤生z30 分钟前
list.茜茜西西CeCe1 小时前
数字图像处理-图像增强(2)薰衣草23331 小时前
hot100练习-11地平线开发者2 小时前
征程 6 | 工具链如何支持 Matmul/Conv 双 int16 输入量化?甄心爱学习2 小时前
数值计算-线性方程组的迭代解法stolentime2 小时前
SCP2025T2:P14254 分割(divide) 题解Q741_1472 小时前
C++ 面试基础考点 模拟题 力扣 38. 外观数列 题解 每日一题W_chuanqi2 小时前
RDEx:一种效果驱动的混合单目标优化器,自适应选择与融合多种算子与策略