LeetCode 环形链表II:为什么双指针第二次会在环的入口相遇?

快慢指针

为什么相遇后让快指针回到起点,再让快指针和慢指针都一步一步地走,它们就会在环的入口相遇?

复杂度

  • 时间复杂度: O(n)
  • 空间复杂度: O(1)
java 复制代码
 public ListNode detectCycle(ListNode head) {
        ListNode slow = head, fast =head;
        ListNode result = null;
        while (fast != null && fast.next != null) {
            slow = slow.next;
            fast = fast.next.next;
            if (fast == slow) {
                break;
            }
        }
        fast = head;
        while (slow != null && slow.next != null) {
            if (fast == slow){
                result = fast;
                break;
            }
            slow = slow.next;
            fast = fast.next;
        }
        return result;
    }
相关推荐
_日拱一卒9 小时前
LeetCode:543二叉树的直径
算法·leetcode·职场和发展
jieyucx9 小时前
Go 数据结构入门:线性表、顺序表、链表
数据结构·链表·golang
汉克老师9 小时前
GESP2025年3月认证C++五级( 第一部分选择题(9-15))
c++·算法·高精度计算·二分算法·gesp5级·gesp五级
穿条秋裤到处跑9 小时前
每日一道leetcode(2026.04.28):获取单值网格的最小操作数
算法·leetcode·职场和发展
leoufung9 小时前
LeetCode 68. Text Justification 题解:贪心与实现细节
算法·leetcode·职场和发展
WL_Aurora10 小时前
【每日一题】前缀和
python·算法
汉克老师10 小时前
GESP2025年3月认证C++五级( 第二部分判断题(1-10))
c++·算法·分治算法·线性筛法·gesp5级·gesp五级
洛水水10 小时前
【力扣100题】17.K 个一组翻转链表
算法·leetcode·链表
洛水水10 小时前
【力扣100题】16.两两交换链表中的节点
算法·leetcode·链表
wuweijianlove10 小时前
算法教学中的抽象建模与动态可视化设计的技术7
算法