【题目要求】
实现栈中元素的逆序,但是只能用递归来实现,不能用其他的数据结构
【我的代码】
//获取栈的最底部的值,并把这个值从栈中移除
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;
}
}
//完成栈的递归翻转过程
public static void reverse(Stack<Integer> stack){
if(stack.isEmpty())
return ;
//获取最底部的元素
int i = getAndRemoveLastElement(stack);
//递归翻转剩下的栈
reverse(stack);
//将原本是最底部的元素压入栈的最上边
stack.push(i);
}