题解 | #判断一个链表是否为回文结构#
判断一个链表是否为回文结构
https://www.nowcoder.com/practice/3fed228444e740c8be66232ce8b87c2f
import java.util.*;
/*
* public class ListNode {
* int val;
* ListNode next = null;
* }
*/
public class Solution {
/**
*
* @param head ListNode类 the head
* @return bool布尔型
*/
public boolean isPail (ListNode head) {
if(head == null || head.next == null){
return true;
}
ListNode fast = head, slow = head;
while(fast != null && fast.next != null){
fast = fast.next.next;
slow = slow.next;
}
if(fast != null){
slow = slow.next;
}
fast = head;
ListNode reHead = reverse(slow);
while(reHead != null){
if(reHead.val != fast.val){
return false;
}
reHead = reHead.next;
fast = fast.next;
}
return true;
}
private static ListNode reverse(ListNode head){
if(head == null){
return null;
}
ListNode pre = null, cur = head;
while(cur != null){
ListNode tmp = cur.next;
cur.next = pre;
pre = cur;
cur = tmp;
}
return pre;
}
}
#学习##刷题##每日刷题#