看到好多使用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;