看到好多使用list的add方法放到第一位,这个方法看似简单,但是你看add的源码了吗
你放到第一位,他要将第一位之后的数据,依次往后移动一位,你这样做,真的想清楚了吗?

ArrayList<Integer> arrayList = new ArrayList<>();
        arrayList.add(listNode.val);
        while (listNode.next != null) {
            listNode = listNode.next;
            arrayList.add(listNode.val);
        }

        int l = 0, r = arrayList.size() - 1, m = (r + l) / 2;
        while (l <= m) {
            int a = arrayList.get(l);
            arrayList.set(l, arrayList.get(r));
            arrayList.set(r, a);
            l++;
            r--;
        }

        return arrayList;