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

stack1为空且stack2为空则返回-1;stack2为空但stack1不为空时,将stack1出栈加入stack2,然后stack2弹出一个元素;stack1为空但stack2不为空时直接stack2.pop()。

var stack1;
var stack2;
var CQueue = function() {
    stack1 = [];
    stack2 = [];
};

/** 
 * @param {number} value
 * @return {void}
 */
CQueue.prototype.appendTail = function(value) {
    stack1.push(value);
};

/**
 * @return {number}
 */
CQueue.prototype.deleteHead = function() {
    //若stack1为空
    if(stack1.length == 0 && stack2.length == 0) {
        return -1;
    }else if(stack2.length == 0) {
        while(stack1.length != 0){
            stack2.push(stack1.pop());
        }
        return stack2.pop();
    }else {
        return stack2.pop();
    }
};

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

 

上一篇:科学计算和可视化


下一篇:字节跳动Java岗6月9号一面经验分享