剑指offer-用两个栈实现队列
来源:互联网 发布:xp ie8 淘宝 版本过低 编辑:程序博客网 时间:2024/06/05 20:00
# -*- coding:utf-8 -*-class Solution: def __init__(self):#注意内置函数是双下划线 self.stack1=[] self.stack2=[] def push(self, node): # write code here self.stack1.append(node) def pop(self): # return xx if self.stack2==[]: while self.stack1: self.stack2.append(self.stack1.pop()) return self.stack2.pop() return self.stack2.pop()
引用来源
作者:MaXboy
链接:https://www.nowcoder.com/questionTerminal/54275ddae22f475981afa2244dd448c6
来源:牛客网
MaXboy :1,整体思路是元素先依次进入栈1,再从栈1依次弹出到栈2,然后弹出栈2顶部的元素,整个过程就是一个队列的先进先出
2,但是在交换元素的时候需要判断两个栈的元素情况:
“进队列时”,队列中是还还有元素,若有,说明栈2中的元素不为空,此时就先将栈2的元素倒回到栈1 中(代码中第二个return),保持在“进队列状态”。
“出队列时”,将栈1的元素全部弹到栈2中,保持在“出队列状态”。
所以要做的判断是,进时,栈2是否为空,不为空,则栈2元素倒回到栈1,出时,将栈1元素全部弹到栈2中,直到栈1为空。
阅读全文
0 0
- [剑指offer]用两个栈实现队列
- 【剑指offer】用两个栈实现队列
- 剑指offer--用两个栈实现队列
- 剑指Offer-用两个栈实现队列
- 剑指offer:用两个栈实现队列
- 《剑指offer》用两个栈实现队列
- 用两个栈实现队列(剑指offer)
- 剑指 offer:用两个栈实现队列
- 【剑指Offer】用两个栈实现队列
- 剑指offer-用两个栈实现队列
- 《剑指offer》-用两个栈实现队列
- 剑指offer 用两个栈实现队列
- 剑指offer 用两个栈实现队列
- [剑指offer]用两个栈实现队列
- 剑指offer--用两个栈实现队列
- 剑指offer|用两个栈实现队列
- 【剑指offer】用两个栈实现队列
- 剑指offer----用两个栈实现队列
- Java线程(十):ThreadPoolExecutor+BlockingQueue线程池示例
- Unity手游之路<十一>资源打包Assetbundle
- 常用的Linux下查看服务器配置的命令
- Win 10 安装caffe
- 计蒜客 宝藏 (状压DP)
- 剑指offer-用两个栈实现队列
- android 多线程断点续传下载(可运行)
- PHP正则匹配
- 最新GreenDao多线程下载,断点续传,播放视频
- spring的@Transactional注解详细用法
- c++中好用的stringstream
- 【java 多线程】多线程并发同步问题及生产者、消费者问题
- 第十二周项目4-Floyd算法验证
- c#获取字符串长度