题目: 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
解法:
private Stack<Integer> stack1=new Stack<>();
private Stack<Integer> stack2=new Stack<>();
/**
* 出队列从栈2出,栈2为空,先将栈1的元素入栈2,再从栈2出
* @return
*/
private int pop(){
if (stack2.empty()){
if (stack1.empty()){
return -1;
}
while (!stack1.empty()){
stack2.push(stack1.pop());
}
}
return stack2.pop();
}
/**
* 入队列进栈1
* @param x
*/
private void push(int x){
stack1.push(x);
}