题目描述

用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。

解决方案:

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个栈实现队列相关推荐

  1. [剑指offer] 用两个栈实现队列

    本文首发于我的个人博客:尾尾部落 题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 解题思路 两个栈 stack1 和 stack2: push 动作都在 ...

  2. 剑指offer——用两个栈实现队列

    题目:用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 解题思路: 当stack2不为空时,在stack2中的栈顶元素是最先进入队列的元素,可以弹出.当stack2 ...

  3. 【栈与队列】剑指offer:两个栈模拟队列

    栈:先进后出 队列:先进先出 所以,只要分3种情况写即可 class Solution { public:void push(int node) {stack1.push(node);}int pop ...

  4. 剑指offer五:两个栈实现一个队列

    题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. package com.jianzhioffer;import java.util.Stack;publ ...

  5. 剑指offer(21)栈的压入、探出序列

    链接:https://www.nowcoder.com/questionTerminal/d77d11405cc7470d82554cb392585106 思路:借用一个辅助的栈,遍历压栈顺序,先将第 ...

  6. 剑指offer(21)栈的压入、弹出序列

    题目描述: 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该 ...

  7. 剑指offer面试题[22]-栈的压入、弹出序列

    题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序 ...

  8. 剑指offer面试题31. 栈的压入、弹出序列(链表)

    题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2 ...

  9. 剑指offer中使用辅助栈方法的题目的整理(待更)

    栈的压入.弹出序列(medium难度) https://leetcode-cn.com/problems/zhan-de-ya-ru-dan-chu-xu-lie-lcof/ 本题思路及代码的来源: ...

最新文章

  1. 使用Java监控工具出现 Can't attach to the process
  2. 轻松恢复误删除的共享文件,DPM2007系列之六
  3. Redis: Redis Desk Manager Setup
  4. ReSharper 配置及用法(转)
  5. iis+nginx实现负载均衡
  6. Android笔记之调用其他软件
  7. 演练 构造函数的显示调用与隐式调用 c# 1613715344
  8. 磁盘碎片整理工具:Diskeeper 2010简体中文专业豪华版+有效激活
  9. angularJS使用rootscope创建父域和子模态框通用的属性与函数
  10. Delphi创建ActiveX控件,实现安全接口及无界面代码
  11. 国内趋于概念化的 “数据分析”在硅谷是怎样真正落地的?
  12. 什么是垃圾回收(转)
  13. 用阿里服务器搭建彩虹网代刷平台
  14. aliez歌词_核爆神曲《aLIEz》中文歌词完整版(QQ音乐翻译版)
  15. python爬不同图片分别保存在不同文件夹中
  16. Educational Codeforces Round 87 (Rated for Div. 2)A. Alarm Clock
  17. linux 库全局变量_C语言开发单片机为什么大多数都采用全局变量的形式?
  18. MATLAB图中图局部放大几种方法
  19. 北斗终端与计算机传输信息,北斗短报文船载终端,北斗卫星海上通信终端问世,海上作业再也不怕失联...
  20. 阿里云ecs服务器如何设置实现访问互联网

热门文章

  1. 【最详细】数据结构(C语言版 第2版)第四章课后习题答案 严蔚敏 等 编著
  2. java aio为什么不稳定_烯醇式结构为什么不稳定?
  3. php直销二叉树,PHP二叉树递归算法
  4. markdown的11个语法
  5. 树莓派各版本配置对比
  6. excel自动生成舒尔特表_财务总监:超完美Excel全套账财务系统,自动生成报表,收好喽...
  7. springcloud 子项目怎么导入_「 从0到1学习微服务SpringCloud 」09 补充篇-maven父子模块项目...
  8. python编写函数求n阶调和数_Python实现调和级数的计算
  9. html美化file按钮,css 美化file按钮
  10. 计算机主机内部防尘装置,一种计算机主机用防尘装置的制作方法