题解 | #用两个栈实现队列#
用两个栈实现队列
http://www.nowcoder.com/practice/54275ddae22f475981afa2244dd448c6
这题一开始感觉js没有stack很奇怪 看来用数组也是可以实现的 其实我一开始直接想到shift不是挺好 感觉这个根本看不出来。难道quene就是用这样的底层实现的嘛? 思路还是好想的,两个栈,1先进后出,1所有弹到2先进后出,就变成2先进先出了,2就是队列。 当然这里的细节在与当2为空时,在把1的搬过来即可。 有点抄另一篇题解
let s1=[]
let s2=[]
function push(node)
{
// write code here
s1.push(node)
}
function pop()
{
// write code here
if(s2.length== 0){
while(s1.length!=0){
s2.push(s1.pop())
}
}
return s2.pop()
}
module.exports = {
push : push,
pop : pop
};