题解 | #用两个栈实现队列#
用两个栈实现队列
http://www.nowcoder.com/practice/54275ddae22f475981afa2244dd448c6
问题描述:使用两个栈来实现一个队列
解题思路:
- 一个栈用来入队
- 一个栈用来出队
- push的时候可以直接存入,栈和队列的区别即为出的时候不同
- 出队列应该为先进先出,所以需要将栈中的内容进行反转,即pop一个栈的元素之后存入另一个栈中
相关实现代码:
let a =[]
let b = []
function push(node)
{
a.push(node)
}
function pop()
{
if(b.length==0){
while(a.length>0){
b.push(a.pop())
}
return b.pop()
}else{
return b.pop()
}
}
module.exports = {
push : push,
pop : pop
};