美文网首页
面试题9(剑指offer)--用两个栈实现队列

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

作者: Tiramisu_b630 | 来源:发表于2019-08-14 10:20 被阅读0次

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

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/dkgwjctx.html