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