题目描述
使用栈实现队列的下列操作:
push(x) – 将一个元素放入队列的尾部。
pop() – 从队列首部移除元素。
peek() – 返回队列首部的元素。
empty() – 返回队列是否为空。
解题思路 ❤
用两个栈实现
JAVA代码
class MyQueue {
public Stack<Integer> s1 = new Stack<Integer>();
public Stack<Integer> s2 = new Stack<Integer>();
public MyQueue() {}
public void push(int x) {
while (!s2.empty()) s1.push(s2.pop());
s1.push(x);
}
public int pop() {
while (!s1.empty()) s2.push(s1.pop());
return s2.pop();
}
public int peek() {
while (!s1.empty()) s2.push(s1.pop());
return s2.peek();
}
public boolean empty() {
while (!s1.empty()) s2.push(s1.pop());
return s2.empty();
}
}