方法1:使用数组把节点值存起来,再比较
public boolean isPail (ListNode head) { // 最笨的办法 ArrayList<Integer> list = new ArrayList<>(); while(head!=null){ list.add(head.val); head=head.next; } int l=0,h = list.size()-1; while(l<h){ if(!list.get(l++).equals(list.get(h--))){ //这个地方返回的是Integer对象,不能使用== return false; } } return true; }
方法2:快慢指针定位到中间节点,然后把后半部分链表反转,然后顺序比较
代码略