描述
用兩個棧來實作一個隊列,分别完成在隊列尾部插入整數(push)和在隊列頭部删除整數(pop)的功能。 隊列中的元素為int類型。保證操作合法,即保證pop操作時隊列内已有元素。
示例:
輸入: [“PSH1”,“PSH2”,“POP”,“POP”]
傳回: 1,2
解析: “PSH1”:代表将1插入隊列尾部
“PSH2”:代表将2插入隊列尾部
"POP“:代表删除一個元素,先進先出=>傳回1
"POP“:代表删除一個元素,先進先出=>傳回2
示例1
輸入: [“PSH1”,“PSH2”,“POP”,“POP”]
傳回值: 1,2
var inStack = [];
var outStack = [];
function push(node)
{
// write code here
// 先進
inStack.push(node);
}
function pop()
{
// write code here
// 當outStack不為空時,直接出隊
if(outStack.length){
return outStack.pop();
}else{
// 當outStack為空,且inStack不為空時,先将inStack頭部的數添加到outStack尾部,最後再彈出一個數
while(inStack.length){
outStack.push(inStack.pop());
}
return outStack.pop();
}
}
module.exports = {
push : push,
pop : pop
};