boolean checkTwoHalves(ListNode x, int size) {
        if (size == 1) return x.val == rightStart.val;
        boolean b = checkTwoHalves(x.next, size - 1);
        rightStart = rightStart.next;
        return b && x.val == rightStart.val;
    }
Bottom-Up Recursive solution. First We find length of list and find middle node.
Then we will compare last element of right half with the first element of left part in
in bottom up recursion. Time complexity is O(n) to find size and O(N) to compare left and right
lists.
src/problems/easy/PalindromeLinkedList.java