思路:利用两个栈,一个栈(a)当作输入栈,一个栈(b)当作输出栈,利用输入栈pop的结果当作输出栈push的结果,这样输出栈pop的结果就是队列先进先出的格式,
class MyQueue {
private Stack<Integer> a;
private Stack<Integer> b;
public MyQueue() {
a = new Stack();
b = new Stack();
}
public void push(int x) {
a.push(x);
}
public int pop() {
if(b.isEmpty()){
while(!a.isEmpty()){
b.push(a.pop());
}
}
return b.pop();
}
public int peek() {
if(b.isEmpty()){
while(!a.isEmpty()){
b.push(a.pop());
}
}
return b.peek();
}
public boolean empty() {
return a.isEmpty() && b.isEmpty();
}
}