快慢指针:一个指针走两步,一个指针走一步,当快指针走到链表末尾时,慢指针走到中间位置。
逆转链表:根据指针位置分成两个表,逆转第二个表。
按序判断就可以,如果是相同就是回文,反之就不是。
快慢指针能找链表中间,也可以判断链表是否有环
/**
* 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;
}
}
标签:力扣,ListNode,val,int,next,链表,234,指针
From: https://blog.csdn.net/m0_75260099/article/details/144478147