Q:判断链表是否是回文结构,即该链表正逆序完全一样
A:考虑到链表不能没有索引不能获取任意一点的值,可以使用ArrayList–数组结构的集合+双指针
1. 将链表中的节点值加入到list中
2. 使用两个指针,一个从左往右,一个从右往左
3. 比较两个指针指到的节点的值,若不等则返回false
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) {
// write code here
ArrayList<Integer> list = new ArrayList<>();
while(head!=null) {
list.add(head.val);
head = head.next;
}
int left = 0;
int right = list.size()-1;
while(left<=right) {
int x = list.get(left);
int y = list.get(right);
if(x!=y) {
return false;
}
left++;
right--;
}
return true;
}
}