1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
public boolean isPalindrome(ListNode head) { if (head == null || head.next == null) return true; ListNode slow = head, fast = head.next; while (fast != null && fast.next != null) { slow = slow.next; fast = fast.next.next; } ListNode newNode = reverse(slow.next); slow.next = null; while (head != null && newNode != null) { if (head.val != newNode.val) return false; head = head.next; newNode = newNode.next; } return true; }
public ListNode reverse(ListNode head) { if (head == null || head.next == null) return head; ListNode prev = null; while (head != null) { ListNode tmp = head.next; head.next = prev; prev = head; head = tmp; } return prev; }
|
近期评论