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) 写法。