Hot100:回文链表(Palindrome Linked List)快慢指针 + 反转后半段 O(1) 空间 ACERS 解析
副标题 / 摘要 回文链表的核心是“对称比较”,但单链表不能从尾部往前走。最稳的工程化解法是:快慢指针找中点 -> 原地反转后半段 -> 比较 -> 再反转恢复结构,做到 O(n) 时间、O(1) 额外空间且不破坏链表。 预计阅读时长:10~14 分钟 标签:Hot100、链表、快慢指针、原地反转 SEO 关键词:回文链表, Palindrome Linked List, O(1) 空间, 快慢指针, 反转后半段, LeetCode 234 元描述:快慢指针定位中点,反转后半段与前半段逐一比较,最后恢复链表结构;O(n)/O(1) 判断单链表是否回文。 目标读者 刷 Hot100,想掌握“链表中点 + 原地反转”组合拳的学习者 面试中经常遇到“回文/对称/镜像”类题的开发者 关注空间效率、且需要保证数据结构不被破坏的工程实践者 背景 / 动机 在数组里判断回文很简单:左右指针向中间收缩即可。 但在单链表里,你只能顺着 next 单向走,无法从尾部回看,这就让“对称比较”变得不那么直接。 工程上常见的约束也与题目一致: 结构不能改(不能改值、不能打标记、不能改 next 永久化) 额外内存有限(不想把所有节点拷贝到数组里) 因此我们需要一个 线性时间、常数空间、且能恢复结构 的模板解法。 核心概念 概念 含义 作用 回文 从左到右与从右到左相同 需要做“对称比较” 快慢指针 fast 每次两步、slow 每次一步 O(n) 找到链表中点 原地反转 改指针方向把链表片段反转 把“后半段”变成可从前往后比较 结构恢复 比较完成后再反转回去并接回 满足“链表保持原结构”要求 A — Algorithm(题目与算法) 题目还原 给你一个单链表的头节点 head,请你判断该链表是否为回文链表: 如果是回文,返回 true;否则返回 false。 ...