牛客链接

用两个栈实现队列

题目

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

解题思路

栈stack1用来实现push操作,stack2空的前提下才能进行入栈,否则影响后续进出队列的顺序。
栈stack2用来实现pop操作,将push进去的stack1内的元素存入stack2中,再进行出栈,就是队列的出列顺序。

代码实现

import java.util.Stack;public class Solution {Stack<Integer> stack1 = new Stack<Integer>();Stack<Integer> stack2 = new Stack<Integer>();public void push(int node) {while(!stack2.isEmpty()) {stack1.push(stack2.pop());} stack1.push(node);}public int pop() {while(!stack1.isEmpty()) {stack2.push(stack1.pop());}return stack2.pop();}
}

用两个栈实现队列(Java)相关推荐

  1. 《LeetCode力扣练习》剑指 Offer 09. 用两个栈实现队列 Java

    <LeetCode力扣练习>剑指 Offer 09. 用两个栈实现队列 Java 一.资源 题目: 用两个栈实现一个队列.队列的声明如下,请实现它的两个函数 appendTail 和 de ...

  2. 【剑指offer】 用两个栈实现队列 java实现

    [剑指offer] 用两个栈实现队列 题目: 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 分析: 栈和队列的性质,栈是先进后出的,而队列是先进先出的.对于栈我 ...

  3. java 栈和队列实现迷宫代码_LeetCode每日一题--剑指 Offer 09. 用两个栈实现队列(Java)

    DailyChallenge 剑指 Offer 09. 用两个栈实现队列 Easy20200630 Description 用两个栈实现一个队列.队列的声明如下,请实现它的两个函数 appendTai ...

  4. 【剑指offer - C++/Java】5、用两个栈实现队列

    学习交流加 个人qq: 1126137994 个人微信: liu1126137994 学习交流资源分享qq群: 962535112 牛客网题目链接:用两个栈实现队列 文章目录 1.题目分析 2.代码 ...

  5. 在JAVA中用两个栈实现队列的功能

    此问题的实现可以加深对栈和队列的理解,让我们先来认识一下栈和队列 1.Stack栈 栈(Stack)是一种后进先出(LIFO)的数据结构 Stack只有入栈和出栈的操作,常用方法有: (1)把元素压栈 ...

  6. 用两个栈实现队列(Java实现)

    用两个栈实现队列 题目 剑指 Offer 09. 用两个栈实现队列 用两个栈实现一个队列.队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整 ...

  7. 剑指Offer #05 用两个栈实现队列(模拟)

    题目来源:牛客网-剑指Offer专题 题目地址:用两个栈实现队列 题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 题目解析 首先,我们需要知道一下基本知 ...

  8. 剑指offer第二版-9.用两个栈实现队列

    描述:使用两个栈实现一个队列.队列中实现尾部插入和头部删除函数. 思路:stack1负责插入,stack2负责弹出,如果stack2为空了,将stack1的元素依次弹出并存放到stack2中,之后对s ...

  9. 《剑指offer》-- 构建乘积数组、求1+2+3+...+n、不用加减乘除做加法、包含min函数的栈、用两个栈实现队列

    一.构建乘积数组: 1.题目: 给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*. ...

  10. 剑指Offe面试题:用两个栈实现队列

    用两个栈实现队列 题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 分析 首先可以自己尝试使用1 2 3少量元素的入栈出栈摸索两个栈的使用,从特殊到一般 ...

最新文章

  1. 读博难?大神来支招!DeepMind科学家Ruder提出十条实用建议
  2. rancher中级(二)(rancher中添加证书及操作虚拟主机)
  3. 009_调色盘和高亮样式
  4. Excel宏的易错点
  5. 工作304:uni返回上一页面
  6. IP地址、子网掩码、网关、默认网关、DNS的理解
  7. 洛谷P2014【树形dp】
  8. 【Elasticsearch】使用Elasticsearch 7.8 快速搭建食谱搜索系统
  9. 福州大学软件工程1916|W班 第10、11次作业成绩排名
  10. oracle共享池的结构,Oracle 10g内存结构之共享池的相关知识及使用简介
  11. 计算机机房维护与管理,计算机机房的管理与维护.doc
  12. 二次元日系游戏制作工具 - live2dSDK入门教程
  13. Mybatis collection 递归查询并自动装填所有子节点(多参数查询传入参数方法)
  14. 对.Net 垃圾回收的C#编程相关方面(Finalize 和Dispose(bool disposing)和 Dispose())的一些理解体会(转)...
  15. linux ubuntu 版本,ubuntu各版本的区别
  16. 你知道两台Linux之间如何传输文件吗?
  17. PermissionError: [Errno 13] Permission denied: ‘label.csv‘
  18. 安卓逆向——AS开发Xposed插件HOOK案例
  19. 未来五年,做淘宝电商不做好私域流量,将寸步难行!
  20. 用Java实现用户登录界面

热门文章

  1. xmlspy使用必备的技巧
  2. 计算机辅助设计cad实训总结,CAD画图的心得体会
  3. 用户登录功能设计思路
  4. jdk7与jdk8 如何相互切换
  5. 荣耀安装google谷歌服务框架_荣耀20怎么下载安装谷歌服务框架,GMS框架安装教程...
  6. 勒索病毒的克星来了 360安全团队独家发布文件恢复工具
  7. 图说设计模式-结构型设计模式笔记
  8. Python 生命游戏(tkinter版)
  9. PS学习笔记6-选区工具
  10. 王垠:对TAOCP的真正看法