import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * public ListNode(int val) { * this.val = val; * } * } */ public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head ListNode类 the head * @return bool布尔型 */ public boolean isPail (ListNode head) { // write code here if(head == null) return false; //先copy一个链表,再反转, 再比较 ListNode reverseHead = new ListNode(head.val); ListNode tmp = head.next; ListNode newNodeNext = reverseHead; while(tmp != null){ ListNode newNode = new ListNode(tmp.val); newNode.next = newNodeNext; newNodeNext = newNode; tmp = tmp.next; if(tmp == null) reverseHead = newNode; } while(reverseHead != null){ if(reverseHead.val != head.val) return false; reverseHead = reverseHead.next; head = head.next; } return true; } }
需要copy一个新的链表,然后反转该链表,再逐个比对