LeetCode 题解:225. 用队列实现栈,两个队列, 压入 - O(n), 弹出 - O(1),JavaScript,详细注释
原题链接:https://leetcode-cn.com/problems/implement-stack-using-queues/
解题思路:
参考了官方题解的方法二 (两个队列, 压入 - O(n)O(n), 弹出 - O(1)O(1))。
在入栈时将队列的元素按照出栈的顺序排列好,在出栈时就可以按顺序出栈。
使用两个对列,q1用来存储栈,q2保持为空。
每次入栈时都将q1中的元素存入q2,然后把q1元素都移入q2,q2中元素的排列顺序与入栈顺序相反,之后把q1和q2对调。
入栈结束后,q1就按照栈的顺序保存了所有元素,出栈时即为后入先出。
版权声明: 本文为 InfoQ 作者【Lee Chen】的原创文章。
原文链接:【http://xie.infoq.cn/article/b10fced2b040975de177edb55】。文章转载请联系作者。
评论