LeetCode 题解:225. 用队列实现栈,两个队列,压入 -O(1), 弹出 -O(n),JavaScript,详细注释
原题链接:https://leetcode-cn.com/problems/implement-stack-using-queues/
解题思路:
参考了官方题解的方法一 (两个队列,压入 -O(1)O(1), 弹出 -O(n)O(n))。
入栈时直接将元素存入队列q1,出栈时将q1的非队尾元素存入队列q2,q1中剩下的元素即为栈顶。
使用两个对列,q1用来存储栈,q2保持为空。
每次入栈都将元素存入q1,此时栈顶元素在q1队尾,无法被查看,需要用一个变量缓存栈顶的值,供top方法获取。
出栈时将q1的非队尾元素存入队列q2,q1中剩下的元素即为栈顶,将其出队即为出栈操作。
版权声明: 本文为 InfoQ 作者【Lee Chen】的原创文章。
原文链接:【http://xie.infoq.cn/article/3965b1a605656f0130e1c3c2c】。文章转载请联系作者。
评论