剑指Offer系列_09_用两个栈实现队列
package leetcode.sword_to_offfer.day01;
import java.util.LinkedList;
/**
* 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,
* 分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead操作返回 -1 )
* <p>
* 示例 1:
* <p>
* 输入:
* ["CQueue","appendTail","deleteHead","deleteHead"]
* [[],[3],[],[]]
* 输出:[null,null,3,-1]
* 示例 2:
* <p>
* 输入:
* ["CQueue","deleteHead","appendTail","appendTail","deleteHead","deleteHead"]
* [[],[],[5],[2],[],[]]
* 输出:[null,-1,null,null,5,2]
* <p>
* <p>
* Your CQueue object will be instantiated and called as such:
* CQueue obj = new CQueue();
* obj.appendTail(value);
* int param_2 = obj.deleteHead();
*
* @author soberw
* @Classname CQueue
* @Description
* @Date 2022-02-07 8:34
*/
public class CQueue {
private final LinkedList<Integer> list;
private final LinkedList<Integer> listOut;
public CQueue() {
list = new LinkedList<>();
listOut = new LinkedList<>();
listOut.add(null);
}
public void appendTail(int value) {
list.add(value);
listOut.add(null);
}
public int deleteHead() {
if (list.isEmpty()) {
listOut.add(-1);
listOut.pop();
return -1;
}
Integer removeFirst = list.removeFirst();
listOut.add(removeFirst);
return removeFirst;
}
}

剑指Offer系列_09_用两个栈实现队列的更多相关文章
- 《剑指Offer》-005 -用两个栈实现队列
如题 (总结要点) 用两个栈实现队列 栈; 先进后出 队列: 先进先出 两个栈, 相等于两个杯子; 把一本水倒来倒去, 取到杯子底部的元素,并且删除,再倒回去 原文链接 : 借鉴学习文章列表 链接1: ...
- 剑指offer:JZ9 用两个栈实现队列
JZ9 用两个栈实现队列 描述 用两个栈来实现一个队列,使用n个元素来完成 n 次在队列尾部插入整数(push)和n次在队列头部删除整数(pop)的功能. 队列中的元素为int类型.保证操作合法,即保 ...
- 剑指offer 05:用两个栈实现队列
题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 解题代码 import java.util.Stack; public class Solution{ ...
- 剑指offer五之用两个栈实现队列
一.题目 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 二.思路 1.Push操作:将数据直接压入stack1即可 2.Pop操作:将stack1中的数据全部弹 ...
- 【剑指 Offer】09.用两个栈实现队列
题目描述 用两个栈实现一个队列.队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead , 分别完成在队列尾部插入整数和在队列头部删除整数的功能.(若队列中没有元素,del ...
- 【剑指Offer】09. 用两个栈实现队列 解题报告(python & C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 个人微信公众号:负雪明烛 目录 题目描述 解题方法 一个栈用来保存输入,一个栈用来输出 日 ...
- 剑指offer(五):用两个栈实现一个队列
题目: 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 解决办法: 队列先进先出,栈先进后出(stack1和stack2) 其实主要要注意的点是: ①在添加时直接 ...
- 剑指offter-面试题7.用两个栈实现队列
题目.用两个栈实现一个队列.队列的声明如下,请实现它的两个函数appendTail和deleteHead 分别完成在对尾插入节点和在队头删除节点. 该队列类模板如下: template <typ ...
- 干货 | 剑指offer系列文章汇总
下面是名企面试中经常会出现的面试题目,大家可以戳相应的题目查看题目细节,其答案会在紧接着的后一篇中出现 剑指offer系列 始 剑指offer—灯管问题(1) 剑指offer—10人电梯(2) ...
随机推荐
- winform 自定义自动完成控件
做过前端的朋友肯定很清楚自动完成控件,很多优秀的前端框架都会带有自动完成控件,同样的,winform也有,在我们的TextBox和ComboBox中,只需要设置AutoCompleteSource属性 ...
- SpringBoot 之 国际化
增加国际化i18n语言配置: # src/main/resources/i18n/login.properties login.btn=登录 # src/main/resources/i18n/log ...
- CSS基础 CSS常见错误排错思路
- 关于vue部署到nginx服务下,非根目录,刷新页面404的问题
如果在根目录则添加 try_files $uri $uri/ /index.html; 如果不在根目录则添加,格式如下 location /xxxx { try_files $uri $uri/ ...
- centos7-collabora-office(在线文档编辑)
1.wget https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-centos7/repodata/repomd.xml.key &a ...
- Linux上天之路(十三)之系统进程管理
主要内容 进程介绍 进程管理 进程优先级 1. 进程介绍 Linux系统中的几乎任何行动都会以进程的形式进行.如果你用网络浏览器查看网页,浏览器就作为进程运行.如果键入bash shell的命令行,这 ...
- Go语言系列之包
Go语言的包(package) 一.包介绍 包(package)是多个Go源码的集合,是一种高级的代码复用方案,Go语言为我们提供了很多内置包,如fmt.os.io等. 二.定义包 我们还可以根据自己 ...
- mysql-5.7.20-winx64安装图解教程
原文链接:https://www.toutiao.com/i6494052843912167949/ 将安装包解压 解压目录 鼠标右键"我的电脑",弹出"快捷菜单&quo ...
- iview在ie9及以上的兼容问题解决方案
兼容requestAnimationFrame let lastTime = 0 let vendors = ['ms', 'moz', 'webkit', 'o'] for (let x = 0; ...
- ToDesk-----个人免费 极致流畅的远程协助软件
ToDesk https://www.todesk.com/ ToDesk官方下载地址 https://www.todesk.com/ 还支持文件传输,用过许多远程的控制工具,这个自我感觉比向日葵好用 ...