题目
仅用递归函数,实现栈中元素的逆序。
代码实现:
/**
* 将栈stack的栈底元素返回并移除
*
* @param stack
* @return 栈底元素
*/
public static int getAndRemoveLastElement(Stack<Integer> stack) {
int result = stack.pop();
if (stack.isEmpty()) {
return result;
} else {
int last = getAndRemoveLastElement(stack);
stack.push(result);
return last;
}
}
/**
* 逆序一个栈
*
* @param stack
*/
public static void reverse(Stack<Integer> stack) {
if (stack.isEmpty()) {
return;
}
int i = getAndRemoveLastElement(stack);
reverse(stack);
stack.push(i);
}