Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >LeetCode 剑指 Offer 09. 用两个栈实现队列

LeetCode 剑指 Offer 09. 用两个栈实现队列

作者头像
freesan44
发布于 2020-07-01 10:19:32
发布于 2020-07-01 10:19:32
33300
代码可运行
举报
文章被收录于专栏:freesan44freesan44
运行总次数:0
代码可运行

题目

用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
示例 1:

输入:
["CQueue","appendTail","deleteHead","deleteHead"]
[[],[3],[],[]]
输出:[null,null,3,-1]
示例 2:

输入:
["CQueue","deleteHead","appendTail","appendTail","deleteHead","deleteHead"]
[[],[],[5],[2],[],[]]
输出:[null,-1,null,null,5,2]

提示:

1 <= values <= 10000 最多会对 appendTail、deleteHead 进行 10000 次调用

解题思路

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class CQueue:
    def __init__(self):
        self.queueListOut = []
        self.queueListTemp = []
    def appendTail(self, value: int) -> None:
        self.queueListTemp.append(value)

    def deleteHead(self) -> int:
        if len(self.queueListOut) <= 0 and len(self.queueListTemp)<= 0: return -1
        if len(self.queueListOut) != 0:
            return self.queueListOut.pop()
        while len(self.queueListTemp) != 0:
            self.queueListOut.append(self.queueListTemp.pop())
        return self.queueListOut.pop()
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
LeetCode 剑指 Offer 09. 用两个栈实现队列(swift)
用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )
freesan44
2021/08/18
3650
LeetCode-面试题09-用两个栈实现队列
用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )
benym
2022/07/14
1970
剑指 Offer:09. 用两个栈实现队列
1. 题目 剑指 Offer 09. 用两个栈实现队列 2. 描述 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 ) 示例 1: 输入: [“CQueue”,“appendTail”,“deleteHead”,“deleteHead”] [[],[3],[],[]] 输出:[null,null,3,-1] 示例 2: 输
村雨遥
2022/06/15
1680
剑指 offer| 09. 用两个栈实现队列
我们知道,队列的特点是“先进先出”,栈的特点是“先进后出”。我们来看看下面的操作:
孟君
2023/02/23
3170
剑指 offer| 09. 用两个栈实现队列
剑指 Offer 09. 用两个栈实现队列「建议收藏」
用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )
全栈程序员站长
2022/09/22
2110
图解LeetCode——剑指 Offer 09. 用两个栈实现队列(难度:简单)
用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )
爪哇缪斯
2023/05/10
1760
图解LeetCode——剑指 Offer 09. 用两个栈实现队列(难度:简单)
剑指Offer 面试题09. 用两个栈实现队列
用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )
手撕代码八百里
2020/07/28
7090
剑指 Offer 09. 用两个栈实现队列
队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,
Vincent-yuan
2021/06/29
2440
剑指Offer:面试题09. 用两个栈实现队列
用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )
Yuyy
2022/06/28
2110
剑指Offer - 面试题9. 用两个栈实现队列
用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )
Michael阿明
2020/07/13
3200
剑指Offer - 面试题9. 用两个栈实现队列
剑指 Offer 09. 用两个栈实现队列
用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )
且陶陶
2023/04/12
1690
剑指 Offer(C++版本)系列:剑指 Offer 09 用两个栈实现队列
同步GitHub在此 ? https://github.com/TeFuirnever/GXL-Skill-Tree 剑指 Offer(C++版本)系列:总目录和一些提高效率的说明 剑指 Offer(
我是管小亮
2021/07/20
2680
leetcode栈之用两个栈实现队列
这里使用两个栈,一个用于进栈,一个用于出栈;appendTail的时候先遍历out栈将其元素取出来push到in栈里头,最后在push该value;deleteHead的时候先遍历in栈将其元素取出来push到out栈里头,最后在pop出来。
code4it
2020/10/02
2760
leetcode栈之用两个栈实现队列
【每日一题】【leetcode】18.栈&队列-用两个栈实现队列
用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 ) 难易程度:easy
aneutron
2022/08/10
2390
剑指 Offer 09. 用两个栈实现队列C++
用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )
莫浅子
2022/11/18
2090
剑指 Offer 09. 用两个栈实现队列C++
【算法题解】 Day17 栈与队列
用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )
sidiot
2023/08/31
1550
【算法题解】 Day17 栈与队列
用两个栈实现队列
用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )
五分钟学算法
2022/01/05
3200
用两个栈实现队列
一天一大 leet(用两个栈实现队列)难度:简单 DAY-30
用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )
前端小书童
2020/09/24
3010
一天一大 leet(用两个栈实现队列)难度:简单 DAY-30
【leetCode】使用两个栈搞一个队列day05
用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )
袁新栋-jeff.yuan
2020/08/26
2720
算法图解:如何用两个栈实现一个队列?
队列和栈是计算机中两个非常重要的数据结构,经过前面的学习(《队列》、《栈》)我们知道了它们各自的特点,队列是先进先出(FIFO)的,而栈是先进后出(FILO)的,那如何用栈来实现队列呢?这可是一道经典的面试题,所以本文我们就来实现一下。
磊哥
2020/10/29
4500
算法图解:如何用两个栈实现一个队列?
推荐阅读
相关推荐
LeetCode 剑指 Offer 09. 用两个栈实现队列(swift)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验