leetcode 234 -回文链表

39 阅读1分钟

leetcode.cn/problems/pa…

palindrome 这个单词

  • n. a word or phrase that reads the same backward as forward
    要记住这个单词,因为面试时函数名写huiwen,感觉不太好^_^;

题解一:

  1. 先用快慢指针,找到中间节点;
  2. 再把后半部分反转;
  3. 再依次移动前后半部分的指针,比较是否相等;

这个题标为简单题,思路比较直接,但是实现还算比较复杂。

在讨论区看到一种实现,遍历链表加入栈,然后在遍历一遍链表和栈中的值依次比较;

leetcode.cn/problems/pa…

这里有两个优化点:

  • 可以先遍历前一半加入栈,再遍历后一遍,依次比较;但是要先找到中间位置节点,而且要处理奇数个节点时的特殊情况,工程复杂度会增高;
  • 栈中可以存储链表节点指针;