Leetcode--225. 用队列实现栈(Java)
使用队列实现栈的下列操作:
push(x) -- 元素 x 入栈
pop() -- 移除栈顶元素
top() -- 获取栈顶元素
empty() -- 返回栈是否为空
注意:
你只能使用队列的基本操作-- 也就是 push to back, peek/pop from front, size, 和 is empty 这些操作是合法的。
你所使用的语言也许不支持队列。 你可以使用 list 或者 deque(双端队列)来模拟一个队列 , 只要是标准的队列操作即可。
你可以假设所有操作都是有效的(例如, 对一个空的栈不会调用 pop 或者 top 操作)。
思路:插入的时候模拟栈,先将本次需要插入的数插入尾部
之后把其他的数依次从头部移出并插入尾部,就可以实现
删除的时候因为已经逆序,直接删除即可
代码:
class MyStack {
public Queue<Integer> queue;
/** Initialize your data structure here. */
public MyStack() {
queue = new LinkedList();
}
/** Push element x onto stack. */
public void push(int x) {
queue.add(x);
int size = queue.size();
while(size>1)
{
queue.add(queue.poll());
size--;
}
}
/** Removes the element on top of the stack and returns that element. */
public int pop() {
return queue.poll();
}
/** Get the top element. */
public int top() {
return queue.peek();
}
/** Returns whether the stack is empty. */
public boolean empty() {
return queue.size()==0;
}
}
/**
* Your MyStack object will be instantiated and called as such:
* MyStack obj = new MyStack();
* obj.push(x);
* int param_2 = obj.pop();
* int param_3 = obj.top();
* boolean param_4 = obj.empty();
*/
Leetcode--225. 用队列实现栈(Java)相关推荐
- leetcode 225 用队列实现栈(JS)
使用队列实现栈的下列操作: push(x) -- 元素 x 入栈 pop() -- 移除栈顶元素 top() -- 获取栈顶元素 empty() -- 返回栈是否为空 注意: 你只能使用队列的基本操作 ...
- 【Java】LeetCode 225. 用队列实现栈
题目: 请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push.top.pop 和 empty). 实现 MyStack 类: void push(int x) 将元 ...
- leetcode 225. 用队列实现栈(维护两个队列用于倒替元素,使用和1进行按位与,实现队列切换)
题目 思路 维护两个队列,每一次 pop 或者 top 操作,都把当前队列的所有元素放进另外一个队列中(保留或查看最后一个元素,用于返回) 题解 class MyStack {ArrayList< ...
- 代码随想录【day 10 栈与队列】| 232.用栈实现队列、 225. 用队列实现栈
代码随想录[day 10 栈与队列]| 232.用栈实现队列. 225. 用队列实现栈 理论基础 LeetCode 232.用栈实现队列 题目链接:232.用栈实现队列 卡哥文解 视频讲解 解题思路( ...
- LeetCode Algorithm 225. 用队列实现栈
225. 用队列实现栈 Ideas 队列和栈的相互操作,需要特别理解栈和队列这两种数据结构的相同点和不同点. 栈:先进后出,队列:先进先出. 既然数据结构已经限定元素进出的顺序,那么单纯的用一个队列肯 ...
- 代码随想录第十天 | 225. 用队列实现栈 232.用栈实现队列(Java))
232.用栈实现队列 class MyQueue {Stack<Integer> stackIn;Stack<Integer> stackOut;public MyQueue( ...
- 算法训练Day11 | LeetCode232. 用栈实现队列(模拟);225.用队列实现栈(模拟);20. 有效的括号(栈应用);1047. 删除字符串中的所有相邻重复项(栈应用)
目录 LeetCode232.用栈实现队列 1. 思路 2. 代码实现 3. 复杂度分析 4. 思考 LeetCode225. 用队列实现栈 1. 思路 2. 代码实现 3. 复杂度分析 4. 思考 ...
- 代码随想录算法训练Day11 LeetCode232. 用栈实现队列(模拟);225.用队列实现栈(模拟);20. 有效的括号(栈应用);1047. 删除字符串中的所有相邻重复项(栈应用)
代码随想录算法训练Day11 | LeetCode232. 用栈实现队列(模拟):225.用队列实现栈(模拟):20. 有效的括号(栈应用):1047. 删除字符串中的所有相邻重复项(栈应用) 关于栈 ...
- 【代码随想录刷题记录】 232.用栈实现队列 、225. 用队列实现栈
232.用栈实现队列 题目 请你仅使用两个栈实现先入先出队列.队列应当支持一般队列支持的所有操作(push.pop.peek.empty): 实现 MyQueue 类: void push(int x ...
- Suzy找到实习了吗Day 10 | 栈和队列开始啦:232. 用栈实现队列,225. 用队列实现栈
day10 python栈的实现 Python栈所需要的包 232. 用栈实现队列 思路 solution ?? 225. 用队列实现栈 思路 solution python栈的实现 Python中现 ...
最新文章
- 第54期《SCI论文插图排版与绘制》课程欢迎你!
- python中取整数的几种方法
- vim 分屏 最大化_Vim的分屏功能命令大全
- linux设备驱动编写基础
- NutzWk 5.0.x 微服务分布式版本开发及部署说明
- Oracle回退不小心drop掉得表
- 搭建windows的solr6服务器
- 链表的应用 —— 多项式运算(加法+乘法)
- 电脑闪光代码_清华姚班毕业生开发新特效编程语言,99行代码实现冰雪奇缘,网友:大神厉害了!创世的快乐...
- 水桶理论——联想国际化的奇特哲学
- [字符串题-java实现]20. 有效的括号
- Spring Actuator介绍及使用
- 2019技术大赛预选赛 writeup
- 域策略怎么分发计算机软件,AD域中如何布置软件自动分发
- 网上超火的微信昵称和头像创意玩法 个性又帅气 有意思!
- 拼多多根据ID取商品详情 API
- ubantu离线安装ansible_Ubuntu16.04下ansible-tower的集成
- elastic-job初识
- cookie、session及其HTTP缓存的关系
- 麦当劳经营理念酷似SOA
热门文章
- LeetCode 406. 根据身高重建队列(排序)
- python面试总结(三)拷贝与通信
- qt如和调用linux底层驱动_擅长复杂硬件体系设计,多核系统设计,以及基于RTOS或者Linux,QT等进行相关底层驱动。...
- ipv6 访问内网_【内网渗透】—— 隐藏通信隧道技术之网络层隧道技术
- 什么是小样本学习?这篇综述文章用166篇参考文献告诉你答案
- 论文浅尝 - SWJ | 基于知识图谱和注意力图卷积神经网络的可解释零样本学习
- 征稿 | 2019年全国知识图谱与语义计算大会(CCKS2019)第二轮征稿启事
- (C语言)链表的实现集合的相关操作
- 海马体what where记忆推理模型
- 一步步手动实现热修复(一)-dex文件的生成与加载