剑指offer 用2个栈实现队列
题目描述
解决方案:
import java.util.Stack;public class Solution {Stack<Integer> stack1 = new Stack<Integer>();Stack<Integer> stack2 = new Stack<Integer>();public void push(int node) {stack1.push(new Integer(node));}public int pop() {Integer r=null;if(!stack2.isEmpty()){r=stack2.pop();//如果stack2不是空的,则弹出第一个//写上面一句的重要性:当多次弹出的时候,就要执行这一句}else{while(!stack1.isEmpty()){stack2.push(stack1.pop());}if(!stack2.isEmpty()){r=stack2.pop();}}return r;}
}
或者
这是左程云的《程序员代码面试指南》的答案:
import java.util.Stack;public class Solution {Stack<Integer> stack1 = new Stack<Integer>();Stack<Integer> stack2 = new Stack<Integer>();public void push(int node) {stack1.push(node);}public int pop() {if(stack1.empty()&&stack2.empty()){throw new RuntimeException("Queue is empty!");}if(stack2.empty()){while(!stack1.empty()){stack2.push(stack1.pop());}}return stack2.pop();}
}
剑指offer 用2个栈实现队列相关推荐
- [剑指offer] 用两个栈实现队列
本文首发于我的个人博客:尾尾部落 题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 解题思路 两个栈 stack1 和 stack2: push 动作都在 ...
- 剑指offer——用两个栈实现队列
题目:用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 解题思路: 当stack2不为空时,在stack2中的栈顶元素是最先进入队列的元素,可以弹出.当stack2 ...
- 【栈与队列】剑指offer:两个栈模拟队列
栈:先进后出 队列:先进先出 所以,只要分3种情况写即可 class Solution { public:void push(int node) {stack1.push(node);}int pop ...
- 剑指offer五:两个栈实现一个队列
题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. package com.jianzhioffer;import java.util.Stack;publ ...
- 剑指offer(21)栈的压入、探出序列
链接:https://www.nowcoder.com/questionTerminal/d77d11405cc7470d82554cb392585106 思路:借用一个辅助的栈,遍历压栈顺序,先将第 ...
- 剑指offer(21)栈的压入、弹出序列
题目描述: 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该 ...
- 剑指offer面试题[22]-栈的压入、弹出序列
题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序 ...
- 剑指offer面试题31. 栈的压入、弹出序列(链表)
题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2 ...
- 剑指offer中使用辅助栈方法的题目的整理(待更)
栈的压入.弹出序列(medium难度) https://leetcode-cn.com/problems/zhan-de-ya-ru-dan-chu-xu-lie-lcof/ 本题思路及代码的来源: ...
最新文章
- 使用Java监控工具出现 Can't attach to the process
- 轻松恢复误删除的共享文件,DPM2007系列之六
- Redis: Redis Desk Manager Setup
- ReSharper 配置及用法(转)
- iis+nginx实现负载均衡
- Android笔记之调用其他软件
- 演练 构造函数的显示调用与隐式调用 c# 1613715344
- 磁盘碎片整理工具:Diskeeper 2010简体中文专业豪华版+有效激活
- angularJS使用rootscope创建父域和子模态框通用的属性与函数
- Delphi创建ActiveX控件,实现安全接口及无界面代码
- 国内趋于概念化的 “数据分析”在硅谷是怎样真正落地的?
- 什么是垃圾回收(转)
- 用阿里服务器搭建彩虹网代刷平台
- aliez歌词_核爆神曲《aLIEz》中文歌词完整版(QQ音乐翻译版)
- python爬不同图片分别保存在不同文件夹中
- Educational Codeforces Round 87 (Rated for Div. 2)A. Alarm Clock
- linux 库全局变量_C语言开发单片机为什么大多数都采用全局变量的形式?
- MATLAB图中图局部放大几种方法
- 北斗终端与计算机传输信息,北斗短报文船载终端,北斗卫星海上通信终端问世,海上作业再也不怕失联...
- 阿里云ecs服务器如何设置实现访问互联网
热门文章
- 【最详细】数据结构(C语言版 第2版)第四章课后习题答案 严蔚敏 等 编著
- java aio为什么不稳定_烯醇式结构为什么不稳定?
- php直销二叉树,PHP二叉树递归算法
- markdown的11个语法
- 树莓派各版本配置对比
- excel自动生成舒尔特表_财务总监:超完美Excel全套账财务系统,自动生成报表,收好喽...
- springcloud 子项目怎么导入_「 从0到1学习微服务SpringCloud 」09 补充篇-maven父子模块项目...
- python编写函数求n阶调和数_Python实现调和级数的计算
- html美化file按钮,css 美化file按钮
- 计算机主机内部防尘装置,一种计算机主机用防尘装置的制作方法