🧊 算法积木:单链表的「线性遍历」 (Linear Traversal)

24 阅读1分钟

1. 物理模型 (The Physics)

  • 一句话定义
    单向链表中的唯一运动方式。沿着指针方向,从头节点(Head)逐个访问直到空节点(Null),不可跳跃,不可回头。

  • 适用场域

    • 数据结构:单向链表 (Singly Linked List)。
    • 物理铁律“单行道隧道”
      你一旦进入隧道(拿到 Head),就只能硬着头皮走到出口(Null)。
  • 核心价值
    它是所有链表算法的 “基础”

2. 核心范式 (The Schema) 📐

这是链表操作的骨架。任何链表题的代码,撕掉具体的业务逻辑后,剩下的就是这个骨架。

/**
 * 积木名称:线性遍历器 (The Linear Iterator)
 * 
 * @desc 标准的链表迭代结构
 * @param head 入口节点
 */
function traverse<T>(head: T | null): void {
    // 指针初始化:就像探险队站在了洞口
    let current = head;

    // 终止条件:当 current 为 null,说明走出了隧道
    while (current !== null) {
        
        // ---【挂载点 (Mount Point)】---
        // 在这里执行具体业务逻辑,例如:
        // 1. 计数 (length++) -> 变成了“计数器”
        // 2. 比较 (val === target) -> 变成了“搜索器”
        // 3. 记录 (last = current) -> 变成了“尾部追踪器”
        // -----------------------------

        // 推进器:迈出下一步
        // @ts-ignore
        current = current.next;
    }
}