Bootstrap

力扣 LeetCode 232. 用栈实现队列(Day5:栈与队列)

解题思路:

使用一个辅助栈,两个栈可以模拟队列

pop()时使用stackOut,stackOut为空时,需要把所有的stackIn中的元素放入

class MyQueue {
    Stack<Integer> stackIn;
    Stack<Integer> stackOut;

    public MyQueue() {
        stackIn = new Stack<>();
        stackOut = new Stack<>();
    }

    public void push(int x) {
        stackIn.push(x);
    }

    public int pop() {
        if (stackOut.isEmpty()) {
            while (!stackIn.isEmpty()) stackOut.push(stackIn.pop());
        }
        return stackOut.pop();
    }

    public int peek() {
        int tmp = this.pop();
        stackOut.push(tmp);
        return tmp;
    }

    public boolean empty() {
        if (stackIn.isEmpty() && stackOut.isEmpty()) return true;
        return false;
    }
}

;