palindrome 这个单词
- n.
a word or phrase that reads the same backward as forward
要记住这个单词,因为面试时函数名写huiwen,感觉不太好^_^;
题解一:
- 先用快慢指针,找到中间节点;
- 再把后半部分反转;
- 再依次移动前后半部分的指针,比较是否相等;
这个题标为简单题,思路比较直接,但是实现还算比较复杂。
在讨论区看到一种实现,遍历链表加入栈,然后在遍历一遍链表和栈中的值依次比较;
这里有两个优化点:
- 可以先遍历前一半加入栈,再遍历后一遍,依次比较;但是要先找到中间位置节点,而且要处理奇数个节点时的特殊情况,工程复杂度会增高;
- 栈中可以存储链表节点指针;