【链表】LeetCode 141. 环形链表

题目链接

141. 环形链表

思路

设置fast指针和slow指针,分别走两步和一步,如果链表有环的话,那么两个指针一定会在某一时刻相遇。

可以想象成速度不同的两个人跑圈,只要时间足够,速度慢的人一定会被速度快的人套圈。

代码

class Solution {
    public boolean hasCycle(ListNode head) {
        if(head == null){
            return false;
        }

        ListNode slow = head;
        ListNode fast = head;

        do{
            slow = slow.next;
            fast = fast.next;
            if(fast != null){
                fast = fast.next;
            }
        }while(slow != null && fast != null && slow != fast);

        return fast != null;
    }
}

拓展练习

【链表】LeetCode 142. 环形链表 II

posted @   Frodo1124  阅读(29)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效
点击右上角即可分享
微信分享提示