返回首页

双指针:快慢指针套路

一、面试常考点

1. 为什么快慢指针能检测环

快指针每次多走一步,若有环必相遇。

2. 常见应用

找中点、找环入口、删除倒数第 N 个。

二、细节介绍

1. 找中点

slow 一步、fast 两步,结束时 slow 在中点。

2. 倒数第 N 个

先让 fastn 步,再同步走到尾。

三、示例代码

function middleNode(head) {
  let slow = head
  let fast = head

  while (fast && fast.next) {
    slow = slow.next
    fast = fast.next.next
  }

  return slow
}

四、常用应用场景

1. 流式结构遍历

不用额外数组也能定位关键节点。

2. 周期检测

如循环链路、状态循环判断。