[剑指offer] 用两个栈实现队列
本文首发于我的个人博客:尾尾部落
题目描述
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
解题思路
两个栈 stack1 和 stack2:
- push 动作都在 stack1 中进行,
- pop 动作在 stack2 中进行。当 stack2 不为空时,直接 pop,当 stack2 为空时,先把 stack1 中的元素 pop 出来,push 到 stack2 中,再从 stack2 中 pop 元素。
参考代码
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.isEmpty() && stack2.isEmpty())throw new RuntimeException("Queue is empty!");int node;if(stack2.isEmpty()){while(!stack1.isEmpty()){node = stack1.pop();stack2.push(node);}}return stack2.pop();}
}
[剑指offer] 用两个栈实现队列相关推荐
- 剑指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 用2个栈实现队列
题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 解决方案: import java.util.Stack;public class Solution { ...
- 剑指offer-JZ9 用两个栈实现队列(C++,附思路)
描述 用两个栈来实现一个队列,使用n个元素来完成 n 次在队列尾部插入整数(push)和n次在队列头部删除整数(pop)的功能. 队列中的元素为int类型.保证操作合法,即保证pop操作时队列内已有元 ...
- 剑指Offer09. 用两个栈实现队列
class CQueue {public:stack<int> stack1,stack2;CQueue() {//初始化栈while(!stack1.empty()){stack1.po ...
- 【LeetCode】剑指 Offer 52. 两个链表的第一个公共节点
[LeetCode]剑指 Offer 52. 两个链表的第一个公共节点 文章目录 [LeetCode]剑指 Offer 52. 两个链表的第一个公共节点 一.双指针 一.双指针 设 "第一个 ...
- 剑指 Offer 52. 两个链表的第一个公共节点
题目:剑指 Offer 52. 两个链表的第一个公共节点 ,哈哈,我们今天来看一道很简单的题嘛,这是选自剑指 Offer 上的一道题,好了,我们一起来看看题意吧: 考虑到直接复制题目,或者截屏的方式不 ...
- 剑指offer之两个队列实现栈的问题
1 问题 两个队列实现栈的插入和获取头部元素的功能 2 分析 1)获取头部元素的功能分析: 我们有2个队列,我们知道队列的特点的先进先出,而栈的特点是先进后出,比如我们有数据1,2,3,4,我们分别依 ...
最新文章
- Swift - final关键字的介绍,以及使用场景
- matlab数组存字符串,MATLAB字符串数组存储为CSV格式
- JDK 8与JDK 10:三元/拆箱的区别
- 微型计算机技术6,微型计算机技术课后习题6-8章答案.ppt
- SQL Server文本和图像函数
- linux系统编程之文件与I/O(六):fcntl 函数与文件锁
- 【SpringMVC】SpringMVC: @RequestBody 和@ResponseBody 注解详解 NoHandlerFoundException
- 5.递归实现,把M元用最少的硬币来凑。不同面值的硬币,有10元,5元,2元,1元。...
- Java设计模式之适配器模式详解
- vue-elementui制作表格(二)
- 教你怎么用三种办法找到发给你QQ的坦白说的那个人
- DataV阿里云可视化(地图下钻、数据获取) - 文档篇
- WindowsMobile6之“HTC Touch” - iphone的强大竞争对手
- Tomcat使用总结
- mysql 实现异地同步_MySQL 异地同步问题
- 2020.9.10丨Pacbio技术三代建库、测序原理
- 信息化 vs 数字化
- Apollo坐标系转换
- jmeter配置原件
- 抢红包 html 模板,微信抢红包源码和模拟demo