/*
给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。
*/
前置常识: lc0876 链表的两头节点 (用快慢指针找到链表的两头节点)
Lc0234这题的的思路是
1、用快慢指针找到原链表后半局部(找到后半段链表的头指针)。
2、将前半段链表反转。
3、比拟反转后的前半段链表和后半段链表。
其中1、2 两步骤能够同时进行。
先看代码
这题有两个须要留神的点
1、奇数长度的链表和偶数长度的链表解决形式不同。
2、反转链表的操作自身。
上面看图解。
奇数长度的链表 slow须要往前走一步
而偶数长度的链表,快慢指针的while循环之后slow指针曾经达到了预期的地位
再看反转链表的过程,这是刚接触链表的选手比拟难了解的中央
重点在while循环中红框的代码局部
完结。
同步更新到本人的语雀
https://www.yuque.com/dirackeeko/tfpe21/ny24nl7sleaocz5b