class MyQueue {
Stack<Integer> stIn;
Stack<Integer> stOut;
public MyQueue() {
stIn = new Stack<Integer>();
stOut = new Stack<Integer>();
}
public void push(int x) {
stIn.push(x);
}
// 当前的 pop 在返回 stOut 的顶部元素之前,将所有元素从 stIn 移动到 stOut。
public int pop() {
if(stOut.isEmpty()){
while (!stIn.isEmpty()) {
stOut.push(stIn.pop());
}
}
return stOut.pop();
}
// peek 方法在 stOut 不为空,它应该返回 stOut 的顶部元素;如果 stOut 为空,它应该将元素从 stIn 移动到 stOut,然后返回 stOut 的顶部元素。
public int peek() {
if(stOut.isEmpty()){
while (!stIn.isEmpty()) {
stOut.push(stIn.pop());
}
}
return stOut.peek();
}
public boolean empty() {
return stIn.isEmpty() && stOut.isEmpty();
}
}
/**
* Your MyQueue object will be instantiated and called as such:
* MyQueue obj = new MyQueue();
* obj.push(x);
* int param_2 = obj.pop();
* int param_3 = obj.peek();
* boolean param_4 = obj.empty();
*/
代码随想录——用栈实现队列(Leetcode232)复习
于 2024-04-28 09:45:37 首次发布