Java教程

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

本文主要是介绍剑指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()
 */

 

这篇关于剑指offer 09. 用两个栈实现队列的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!