/*
* public class ListNode {
* int val;
* ListNode next = null;
* }
*/
public class Solution {
/**
*
* @param head ListNode类 the head
* @return bool布尔型
*/
public boolean isPail (ListNode head) {
// write code here
if(head == null || head.next == null ){
return true;
}
//快慢指针
ListNode slow = head;
ListNode fast = head;
ListNode pre = null;
while(fast != null && fast.next != null){
fast = fast.next.next;
ListNode next = slow.next;
slow.next = pre;
pre = slow;
slow = next;
}
//偶数 fast = null
//奇数时 fast != null slow要后移一位
if(fast != null){
slow = slow.next;
}
while(pre != null && slow != null){
if(pre.val != slow.val){
return false;
}
pre = pre.next;
slow = slow.next;
}
return true;
}
}