D

当前:LC234 · 回文链表 · 首次出现于 Day 11 · 路径:顶栏「56天打卡」→ 点击 LC 题号 → 逐题动画

LC234

回文链表

链表 · 找中点+反转可视化:链表指针

判断链表 1→2→2→1 是否回文(用数组模拟 1221)。

时间 O(n)空间 O(1)
题目1 / 9
题目与输入建立输入、目标与算法心智

回文链表:前半与反转后半比较

正在加载算法场景...
当前发生了什么

判断链表 1→2→2→1 是否回文(用数组模拟 1221)。

机器状态

前半/后半头指针、比对结果。

为什么正确

快慢找中点,反转后半,双指针比对,最后可选恢复链表。

不变量

反转后半长度 ⌈n/2⌉,与前半逐位比较。

面试怎么说

O(1) 空间:快慢找中点,反转后半再比较;面试可提栈 O(n) 写法。

人类输入

判断链表 1→2→2→1 是否回文(用数组模拟 1221)。

机制

快慢找中点,反转后半,双指针比对,最后可选恢复链表。

机器状态

前半/后半头指针、比对结果。

可观察结果

两半 12 与 21(反转后 12) 对称,返回 true。

不变量
  • · 反转后半长度 ⌈n/2⌉,与前半逐位比较。
常见误区
  • · 奇数长度时中间结点应跳过或只比一半。
迁移练习
  • · LC125 验证回文串
  • · LC876 中间结点
面试怎么答

O(1) 空间:快慢找中点,反转后半再比较;面试可提栈 O(n) 写法。