题目:给定一个链表,请判断该链表是否为回文结构
例如:输入[1,2,2,1],返回true;
解答:
1.不要求空间复杂,可以使用数组的形式,添加所有的节点到数组中;
2.设置变量i,j ,一个从前遍历,一个从后遍历,判断他们到是否相等,不等直接返回,相等i++,j--
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<ListNode> list = new ArrayList<ListNode>();
while(head != null){
list.add(head);
head = head.next;
}
if(list.size() == 1) return true;
int i = 0,j = list.size()-1;
while(i<j){
if(list.get(i).val!=list.get(j).val){
return false;
}
i++;
j--;
}
return true;
}
}