leetcode141-环形链表
141. 环形链表
方法一:快慢指针,如果存在环,快指针总会追上慢指针的。如果不存在环,那么遇到NULL就会直接结束
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: bool hasCycle(ListNode *head) { ListNode *dummyHead = new ListNode; dummyHead->next=head; ListNode *slow=dummyHead; ListNode *fast=dummyHead; while(slow&&fast&&fast->next) { slow=slow->next; fast=fast->next->next; if(slow==fast) return true; } return false; } };
方法二:集合?哈希表?把遍历过的结点放入set,如果当前遍历的结点已经存在于set中,那么就说明有环
class Solution { public: bool hasCycle(ListNode *head) { unordered_set<ListNode*> seen; while (head != nullptr) { if (seen.count(head)) { return true; } seen.insert(head); head = head->next; } return false; } }; /* 作者:LeetCode-Solution 链接:https://leetcode.cn/problems/linked-list-cycle/solution/huan-xing-lian-biao-by-leetcode-solution/ 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。*/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!