一、题目
函数原型:
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
相关推荐
Jerry2 小时前
LeetCode 1047. 删除字符串中的所有相邻重复项可编程芯片开发4 小时前
基于霍尔传感器和PID控制器的有功功率检测控制系统simulink建模与仿真To_OC5 小时前
LC 17 电话号码的字母组合:我的回溯算法,就是从这道题开窍的战族狼魂7 小时前
GPT-5.6与Grok 4.5重磅发布白日焰火18 小时前
基于 OpenSpec 实现规范驱动开发imuliuliang8 小时前
关于图搜索算法的性能建模与可预测性研究7ForDreamMusk9 小时前
批量归一化Ivanqhz10 小时前
刚体的自由度KaMeidebaby10 小时前
卡梅德生物技术快报|抗体合成:多肽抗体合成工程化方案:Nsp2 保守肽多抗制备与多维度验证Yang_jie_0311 小时前
笔记:数据结构(栈是否使用底指针以及头指针的初始化值)