判断一个链表是否为回文结构

【题目】 给定一个链表的头节点head,请判断该链表是否为回文结构(链表左右对称)。
例如: 1->2->1,返回true。 1->2->2->1,返回true。 15->6->15,返回true。 1->2->3,返回false。
进阶: 如果链表长度为N,时间复杂度达到O(N),额外空间复杂 度达到O(1)。

第一种思路
遍历两次链表,第一次把链表的值放在栈中,第二次遍历比对栈中的值和链表中的值的关系.

代码:

第二种思路
定义两个指针,一个每次走一步的慢指针,一个每次走两步的快指针.两个指针遍历链表,当快指针走到最后的时候慢指针会刚好走到中间,逆转慢指针走到的结点的后面结点,然后链表从两边向中间进行比对,比对完了再把链表进行恢复

关于链表奇偶判断,指针停止时候,如果慢指针索引是偶数则索引加1是奇数说明链表是个奇数链

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容