您的位置:首页 > 职场人生

程序员面试指南之如何仅用递归函数和栈操作逆序一个栈

2016-10-13 12:20 267 查看

题目描述:



解题思路:

  我们可以设计两个递归函数,第一个函数返回栈底元素并移除该元素得以让下一个递归函数进行压入操作。第一个函数示意图:



题解:

import java.util.Stack;

public class ReverseStack {

//返回栈底元素并移除
public int getAndremoveLast(Stack<Integer> stack){
int res =stack.pop();
if(stack.isEmpty()){
return res;
}else{
int last = getAndremoveLast(stack);
stack.push(res);
return last;
}
}

//逆序压入元素
public void reversePush(Stack<Integer> stack){
if(stack.isEmpty()){
return;
}else{
int i = getAndremoveLast(stack);
reversePush(stack);
stack.push(i);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: