剑指 Offer 09

一个栈用处理进队操作,一个用于出队列操作;

当stack2为空,并且接下来是出队列操作时,需要将stack1所有的元素统统打入stack2

/**
 * Your CQueue object will be instantiated and called as such:
 * CQueue obj = new CQueue();
 * obj.appendTail(value);
 * int param_2 = obj.deleteHead();
 */
class CQueue {
    //方式1:栈1入队列,栈2出队列

    private Stack<Integer> stack1;    
    private Stack<Integer> stack2;

    public CQueue(){
        stack1 = new Stack<>();
        stack2 = new Stack<>();
    }

    public void appendTail(int value){
        stack1.push(value);
    }

    public int deleteHead(){
    if(!stack2.isEmpty()){
        return stack2.pop();
    }else{
        while(!stack1.isEmpty()){
            stack2.push(stack1.pop());
        }
        return stack2.isEmpty()?-1:stack2.pop();
    }
    }
}
posted @ 2023-06-19 13:42  郭培鑫同学  阅读(7)  评论(0编辑  收藏  举报