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

解题思路:

当stack2不为空时,在stack2中的栈顶元素是最先进入队列的元素,可以弹出。当stack2为空时,我们把stack1中的元素逐个弹出并压入stack2.由于先进入队列的元素被压到stack1,底端,经过弹出和压入操作后就处于stack2的顶端。

 1 import java.util.Stack;
 2
 3 public class Solution {
 4     Stack<Integer> stack1 = new Stack<Integer>();
 5     Stack<Integer> stack2 = new Stack<Integer>();
 6
 7     public void push(int node) {
 8         stack1.push(node);
 9     }
10
11     public int pop() {
12         if(stack2.empty())//如果stack2不为空,不可以push
13         {
14             while(!stack1.empty())
15             stack2.push(stack1.pop());
16
17         }
18         return stack2.pop();
19
20     }
21 }

转载于:https://www.cnblogs.com/wangyufeiaichiyu/p/10844442.html

剑指offer——用两个栈实现队列相关推荐

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

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

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

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

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

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

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

    题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 解决方案: import java.util.Stack;public class Solution { ...

  5. 剑指offer-JZ9 用两个栈实现队列(C++,附思路)

    描述 用两个栈来实现一个队列,使用n个元素来完成 n 次在队列尾部插入整数(push)和n次在队列头部删除整数(pop)的功能. 队列中的元素为int类型.保证操作合法,即保证pop操作时队列内已有元 ...

  6. 剑指Offer09. 用两个栈实现队列

    class CQueue {public:stack<int> stack1,stack2;CQueue() {//初始化栈while(!stack1.empty()){stack1.po ...

  7. 【LeetCode】剑指 Offer 52. 两个链表的第一个公共节点

    [LeetCode]剑指 Offer 52. 两个链表的第一个公共节点 文章目录 [LeetCode]剑指 Offer 52. 两个链表的第一个公共节点 一.双指针 一.双指针 设 "第一个 ...

  8. 剑指 Offer 52. 两个链表的第一个公共节点

    题目:剑指 Offer 52. 两个链表的第一个公共节点 ,哈哈,我们今天来看一道很简单的题嘛,这是选自剑指 Offer 上的一道题,好了,我们一起来看看题意吧: 考虑到直接复制题目,或者截屏的方式不 ...

  9. 剑指offer之两个队列实现栈的问题

    1 问题 两个队列实现栈的插入和获取头部元素的功能 2 分析 1)获取头部元素的功能分析: 我们有2个队列,我们知道队列的特点的先进先出,而栈的特点是先进后出,比如我们有数据1,2,3,4,我们分别依 ...

最新文章

  1. SQLite3的数据类型转载()
  2. CodeForces - 1303E Erase Subsequences(dp)
  3. 工作215:打印出父子组件的this
  4. Redis服务器被劫持风波
  5. 《.Ne框架程序设计》随记(3)
  6. 百度谷歌雅虎搜狗提交链接入口
  7. iphone双卡双待神器android,荐好货:让iPhone变双卡双待神器大盘点
  8. python xlsxwriter dict_Python玩转Excel神器xlsxwriter详解
  9. 谷歌chrome浏览器安装json插件
  10. java SE的内容有什么_JavaSE包含哪些内容?JavaEE呢?
  11. 黑天鹅mobi_破坏我们系统的因素:黑天鹅分类法
  12. xdos攻击ac实验环境
  13. 如何设置分布式IO模块Profinet的地址
  14. XCode 苹果开发者账号,无法本地编译项目,问题所在 The app identifier “xxxx“ cannot be registered to your development team
  15. 我的瞎搞开发工具集以及对一些工具的比较
  16. 如何用CANSLIM法则选股
  17. wmf文件与emf文件
  18. MSSQL 数据库邮件配置
  19. 机器学习岗位的面试准备——总结1
  20. python歌词分析_Python 词云分析周杰伦新歌《说好不哭》

热门文章

  1. 数据结构杂谈番外篇——搞懂递归的小文章
  2. 【树莓派学习笔记】五、处理、自动重命名并另存为图片
  3. /dev/fb0入门练习
  4. makefile常用讲解(2)
  5. bash删除文件中的空行
  6. gcc -D选项的作用
  7. React开发(225):render中返回的值可以定义为一个方法
  8. 手动封装js的call和apply和bind和typeof和new方法
  9. 工作161:eachart渲染步骤
  10. 工作总结17:组件封装思想