回文链表:algorithm世界里的“自证清白”
作者:Echo_Wish
🪞引子:判断“是不是回文”,从来不是表象问题
每个人都有这样的体验:
当我们看人,看项目,看代码的时候,表面往往看不出本质。
有些人外表漂亮,行为却糟糕;
有些人外表普通,内核却干净纯粹。
链表也是这样。
它不像数组半透明,一眼看到头尾;
它是一节一节的指针串起来的封闭河流。
而所谓回文链表(Palindrome Linked List),就是要回答一句朴素的问题:
🔥“这个链表正着读、反着读,是不是一致的?”
比如:
- 1 → 2 → 2 → 1 是回文
- 1 → 2 → 3 → 2 → 1 也是回文
- 1 → 2 → 3 → 4 就不是
但问题来了:
链表没有随机访问,你想看尾巴?得走半天;
你想复制?得多申请内存;
你想就地判断?得动“结构”。
于是,“回文链表”就成了链表处理里的气质题:谁能不额外空间、不破坏结构,还能 O(n) 跑完?
🧩原理讲解:三种思路,三种世界观
判断回文链表,说白了就三条路: