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

image.png
1626911075(1).png

思路:
①一个栈只负责入,一个栈负责一直出,没了就找入的栈全部倒入自己种
②两个都没有,返回-1

代码:

class CQueue {
    Stack<Integer> in,out;
    public CQueue() {
        in = new Stack<>();
        out = new Stack<>();
    }
    
    public void appendTail(int value) {
        in.push(value);
    }
    
    public int deleteHead() {
        if(out.isEmpty()){
            if(in.isEmpty())return -1;
            //全部倒进入,然后吐出第一个
            while(!in.isEmpty()){
                out.push(in.pop());
            }
            return out.pop();
        }
        else
            return out.pop();
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容