使用额外栈的思路
不使用额外栈(递归!)
public static void reverse(Stack<Integer> stack) {
if (stack.isEmpty())
return;
int i = f(stack);
reverse(stack);
stack.push(i);
}
// 递归子过程
public static int f(Stack<Integer> stack) {
int result = stack.pop();
if (stack.isEmpty())
return result;
else {
int last = f(stack);
stack.push(result);
return last;
}
}
C++ | Java |
---|