一、题目
函数原型:
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
相关推荐
爱思德学术7 分钟前
中国计算机学会(CCF)推荐学术会议-B(交叉/综合/新兴):BIBM 2025冰糖猕猴桃17 分钟前
【Python】进阶 - 数据结构与算法lifallen31 分钟前
Paimon vs. HBase:全链路开销对比liujing102329291 小时前
Day04_刷题niuke202507032401_881244402 小时前
Treap树乌萨奇也要立志学C++2 小时前
二叉树OJ题(单值树、相同树、找子树、构建和遍历)网安INF2 小时前
深度学习中的逻辑回归:从原理到Python实现wsxqaz2 小时前
浏览器原生控件上传PDF导致hash值不同NAGNIP2 小时前
Transformer注意力机制——MHA&MQA&GQA摘星编程3 小时前
多模态AI Agent技术栈解析:视觉-语言-决策融合的算法原理与实践