使用队列实现栈的下列操作:

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)相关推荐

  1. leetcode 225 用队列实现栈(JS)

    使用队列实现栈的下列操作: push(x) -- 元素 x 入栈 pop() -- 移除栈顶元素 top() -- 获取栈顶元素 empty() -- 返回栈是否为空 注意: 你只能使用队列的基本操作 ...

  2. 【Java】LeetCode 225. 用队列实现栈

    题目: 请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push.top.pop 和 empty). 实现 MyStack 类: void push(int x) 将元 ...

  3. leetcode 225. 用队列实现栈(维护两个队列用于倒替元素,使用和1进行按位与,实现队列切换)

    题目 思路 维护两个队列,每一次 pop 或者 top 操作,都把当前队列的所有元素放进另外一个队列中(保留或查看最后一个元素,用于返回) 题解 class MyStack {ArrayList< ...

  4. 代码随想录【day 10 栈与队列】| 232.用栈实现队列、 225. 用队列实现栈

    代码随想录[day 10 栈与队列]| 232.用栈实现队列. 225. 用队列实现栈 理论基础 LeetCode 232.用栈实现队列 题目链接:232.用栈实现队列 卡哥文解 视频讲解 解题思路( ...

  5. LeetCode Algorithm 225. 用队列实现栈

    225. 用队列实现栈 Ideas 队列和栈的相互操作,需要特别理解栈和队列这两种数据结构的相同点和不同点. 栈:先进后出,队列:先进先出. 既然数据结构已经限定元素进出的顺序,那么单纯的用一个队列肯 ...

  6. 代码随想录第十天 | 225. 用队列实现栈 232.用栈实现队列(Java))

    232.用栈实现队列 class MyQueue {Stack<Integer> stackIn;Stack<Integer> stackOut;public MyQueue( ...

  7. 算法训练Day11 | LeetCode232. 用栈实现队列(模拟);225.用队列实现栈(模拟);20. 有效的括号(栈应用);1047. 删除字符串中的所有相邻重复项(栈应用)

    目录 LeetCode232.用栈实现队列 1. 思路 2. 代码实现 3. 复杂度分析 4. 思考 LeetCode225. 用队列实现栈 1. 思路 2. 代码实现 3. 复杂度分析 4. 思考 ...

  8. 代码随想录算法训练Day11 LeetCode232. 用栈实现队列(模拟);225.用队列实现栈(模拟);20. 有效的括号(栈应用);1047. 删除字符串中的所有相邻重复项(栈应用)

    代码随想录算法训练Day11 | LeetCode232. 用栈实现队列(模拟):225.用队列实现栈(模拟):20. 有效的括号(栈应用):1047. 删除字符串中的所有相邻重复项(栈应用) 关于栈 ...

  9. 【代码随想录刷题记录】 232.用栈实现队列 、225. 用队列实现栈

    232.用栈实现队列 题目 请你仅使用两个栈实现先入先出队列.队列应当支持一般队列支持的所有操作(push.pop.peek.empty): 实现 MyQueue 类: void push(int x ...

  10. Suzy找到实习了吗Day 10 | 栈和队列开始啦:232. 用栈实现队列,225. 用队列实现栈

    day10 python栈的实现 Python栈所需要的包 232. 用栈实现队列 思路 solution ?? 225. 用队列实现栈 思路 solution python栈的实现 Python中现 ...

最新文章

  1. 第54期《SCI论文插图排版与绘制》课程欢迎你!
  2. python中取整数的几种方法
  3. vim 分屏 最大化_Vim的分屏功能命令大全
  4. linux设备驱动编写基础
  5. NutzWk 5.0.x 微服务分布式版本开发及部署说明
  6. Oracle回退不小心drop掉得表
  7. 搭建windows的solr6服务器
  8. 链表的应用 —— 多项式运算(加法+乘法)
  9. 电脑闪光代码_清华姚班毕业生开发新特效编程语言,99行代码实现冰雪奇缘,网友:大神厉害了!创世的快乐...
  10. 水桶理论——联想国际化的奇特哲学
  11. [字符串题-java实现]20. 有效的括号
  12. Spring Actuator介绍及使用
  13. 2019技术大赛预选赛 writeup
  14. 域策略怎么分发计算机软件,AD域中如何布置软件自动分发
  15. 网上超火的微信昵称和头像创意玩法 个性又帅气 有意思!
  16. 拼多多根据ID取商品详情 API
  17. ubantu离线安装ansible_Ubuntu16.04下ansible-tower的集成
  18. elastic-job初识
  19. cookie、session及其HTTP缓存的关系
  20. 麦当劳经营理念酷似SOA

热门文章

  1. LeetCode 406. 根据身高重建队列(排序)
  2. python面试总结(三)拷贝与通信
  3. qt如和调用linux底层驱动_擅长复杂硬件体系设计,多核系统设计,以及基于RTOS或者Linux,QT等进行相关底层驱动。...
  4. ipv6 访问内网_【内网渗透】—— 隐藏通信隧道技术之网络层隧道技术
  5. 什么是小样本学习?这篇综述文章用166篇参考文献告诉你答案
  6. 论文浅尝 - SWJ | 基于知识图谱和注意力图卷积神经网络的可解释零样本学习
  7. 征稿 | 2019年全国知识图谱与语义计算大会(CCKS2019)第二轮征稿启事
  8. (C语言)链表的实现集合的相关操作
  9. 海马体what where记忆推理模型
  10. 一步步手动实现热修复(一)-dex文件的生成与加载