题目描述
编写一个函数,检查输入的链表是否是回文的。
示例 1:
1 | 输入: 1->2 |
示例 2:
1 | 输入: 1->2->2->1 |
题解
快慢指针+反转链表
在字符串或者数组题目中判断回文可以选择从中间往两边扩展的方法来验证, 但是链表不行, 因为链表具有单向性, 不能往回遍历.
首先还是先找到中间的节点, 使用快慢指针的方法
然后将后面半段的链表反转, 然后再逐一对比前半段和反转后的后半段链表是否相同
1 | public class jd0206 { |
编写一个函数,检查输入的链表是否是回文的。
示例 1:
1 | 输入: 1->2 |
示例 2:
1 | 输入: 1->2->2->1 |
在字符串或者数组题目中判断回文可以选择从中间往两边扩展的方法来验证, 但是链表不行, 因为链表具有单向性, 不能往回遍历.
首先还是先找到中间的节点, 使用快慢指针的方法
然后将后面半段的链表反转, 然后再逐一对比前半段和反转后的后半段链表是否相同
1 | public class jd0206 { |
微信支付
支付宝