一、题目
函数原型:
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
相关推荐
M78佐菲1 分钟前
Linux学习笔记:进程徐小夕1 小时前
表格、文档、甘特、大屏、表单一站打通:pxcharts超级表格4.0正式上线!Xin7702 小时前
LeetCode 23.合并 K 个升序链表(分治递归)TechLee2 小时前
跨语言加解密总对不上?这个纯 Go 神库让 AES/RSA 与 PHP、Java 100% 互通月华路4 小时前
G1 新生代对象晋升老年代:实现机制与 GC 日志万法若空4 小时前
排列组合恒等式Nil2084 小时前
leetcode 105从前序和中序遍历序列构造二叉树一直C5 小时前
【数据结构】哈希表+算法复杂度与经典排序查找(C语言)淡海水5 小时前
04-02-哈希-Dictionary-TKey-TValue-上-核心数据结构戴西软件5 小时前
国内有哪些数据轻量化格式转换软件?