题目描述(简单难度)
使用栈来实现队列。
思路分析
225 题 是使用队列来实现栈,其中介绍了两种解法,解法一通过一个临时队列来实现 和 peek
。解法二只修改 。下边的话,我们依旧借助之前的思想来解决这个问题。
解法一
通过一个临时栈,每次 pop
的时候将原来的元素都保存到临时栈中,只剩下最后一个元素,这个元素是第一个加入栈中的,对于队列就是第一个应该弹出的。然后再把原来的元素还原到栈中即可。
的话是同理。
解法二
解法三
上边两种解法都是使用了临时栈,先弹出再还原,每个元素会遍历两次。
参考 -amortized-C%2B%2B-Java-Ruby) ,我们使用两个栈,一个栈输入,一个栈输出。当需要查看或者出队的时候,我们就将输入栈元素依次放入到输出栈中,此时的输出栈的输出顺序刚好和队列是相符的。
这样的话,每个元素只会遍历一次了。
可以看一下代码。
总
添加好友一起进步~
如果觉得有帮助的话,可以点击 这里 给一个 star 哦 ^^
如果想系统的学习数据结构和算法,强烈推荐一个我之前学过的课程,可以点击 查看详情