面试题9(剑指offer)--用两个栈实现队列

2019-08-14  本文已影响0人  Tiramisu_b630

题目: 用两个栈来实现一个队列,完成队列的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);
    }
上一篇下一篇

猜你喜欢

热点阅读