寻找回文的中心思想是从中心向两端扩展
判断一个字符串是否是回文则是从两端向中心扩展
单链表判断回文串:
- 可以后序遍历(模仿二叉树)
- 可以采用栈,栈用递归实现,前面的left指针一直往后,递归到最后的right指针一直出栈,同时进行比较(时空复杂度均为O(n))
- 部分反转链表,利用快慢双指针,left慢指针只走一步,同时right快指针走两步,left找到中间偏右一步的节点,对left为头节点进行翻转,然后head和left同时往后走并比较值是否一样(时间复杂度为O(n),空间复杂度为O(1),最优)