快慢指针:一个指针走两步,一个指针走一步,当快指针走到链表末尾时,慢指针走到中间位置。
逆转链表:根据指针位置分成两个表,逆转第二个表。
按序判断就可以,如果是相同就是回文,反之就不是。
快慢指针能找链表中间,也可以判断链表是否有环
/*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val = val; }* ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public boolean isPalindrome(ListNode head) {int[] arr = new int[100000];int index =0;ListNode flag = head;while(flag!=null){arr[index] = flag.val;index++;flag = flag.next;}for(int i = 0;i<=index/2;i++){if(arr[i] != arr[index -1-i]){return false;}}return true;}
}