题目:给定一个链表,请判断该链表是否为回文结构
例如:输入[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 hereArrayList<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;}
}