方法很笨,使用两个栈
import java.util.Stack; public class Solution { public void reOrderArray(int [] array) { if (array == null) return; int n = array.length; Stack<Integer> stack1 = new Stack<>(); Stack<Integer> stack2 = new Stack<>(); for (int i = n - 1; i >= 0; i--){ if (array[i] % 2 == 0) stack2.add(array[i]); else stack1.add(array[i]); } for (int i = 0; i < n; i++){ if (!stack1.isEmpty()) array[i] = stack1.pop(); else array[i] = stack2.pop(); } } }