第一步先将链表的值放在数组列表里,然后通过双指针来判断是否是回文链表,一个指针从头开始,另一个指针从尾开始,依次遍历,如果遇到的值不一样直接返回false,值一样则继续遍历,直到两个索引相遇。
第一步:
List<Integer> arr=new ArrayList<Integer>();
ListNode currentNode=head;
Boolean flag=true;
while (currentNode!=null){
arr.add(currentNode.val);
currentNode=currentNode.next;
}
第二步:
int front=0;
int back=arr.size()-1;
while (front<back){
if (!arr.get(front).equals(arr.get(back))){
flag=false;
}
front++;
back--;
}
return flag;