首页 > 其他 > 详细

剑指 Offer 09. 用两个栈实现队列

时间:2021-04-07 09:27:28      阅读:22      评论:0      收藏:0      [点我收藏+]

题解

class CQueue {
    Stack<Integer> a, b;
    
    public CQueue() {
        a = new Stack<Integer>(); 
        b = new Stack<Integer>();
    }
    
    public void appendTail(int value) {
        a.push(value);//新加的值直接加在a中就可以了
    }
    
    public int deleteHead() {
        if(b.empty()){//在进行删除的时候先判定b中是否有数据,如果没有就从a中拿数据
            while(!a.empty()){
                b.push(a.pop());
            }
        }

        //最后再进行判定就可以了
        if(!b.empty()){
            return b.pop();
        }

        return -1;
    }
}

/**
 * Your CQueue object will be instantiated and called as such:
 * CQueue obj = new CQueue();
 * obj.appendTail(value);
 * int param_2 = obj.deleteHead();
 */

剑指 Offer 09. 用两个栈实现队列

原文:https://www.cnblogs.com/Lngstart/p/14626123.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!