Implement the following operations of a queue using stacks.
- push(x) -- Push element x to the back of queue.
- pop() -- Removes the element from in front of queue.
- peek() -- Get the front element.
- empty() -- Return whether the queue is empty.
Notes:
- You must use only standard operations of a stack -- which means only
push to top
,peek/pop from top
,size
, andis empty
operations are valid. - Depending on your language, stack may not be supported natively. You may simulate a stack by using a list or deque (double-ended queue), as long as you use only standard operations of a stack.
- You may assume that all operations are valid (for example, no pop or peek operations will be called on an empty queue).
class MyQueue { Stack<Integer> end = new Stack<>(); Stack<Integer> front = new Stack<>(); // Push element x to the back of queue. public void push(int x) { end.push(x); } // Removes the element from in front of queue. public void pop() { if(front.isEmpty()) { while(!end.isEmpty()) { front.push(end.pop()); } } if(!front.isEmpty()) front.pop(); } // Get the front element. public int peek() { if(front.isEmpty()) { while(!end.isEmpty()) { front.push(end.pop()); } } return front.peek(); } // Return whether the queue is empty. public boolean empty() { return front.isEmpty() && end.isEmpty(); } }
相关推荐
java java_leetcode题解之Implement Queue Using Stacks.java
python python_leetcode题解之232_Implement_Queue_using_Stacks.py
232.Implement_Queue_using_Stacks用栈实现队列【LeetCode单题讲解系列】
推前LeetCode_232--Implement-Queue-using-Stacks 使用堆栈实现队列的以下操作。 push(x) -- 将元素 x 推到队列的后面。 pop()——从队列前面移除元素。 peek() -- 获取最前面的元素。 empty() -- 返回队列是否为空...
看leetcode吃力资料结构与演算法学习笔记 Week1 中秋节放假 Week2 说明上课方式与计分规则 Week3 完成LeetCode 707. Design Linked List Week4 完成LeetCode 155. Min Stack 完成LeetCode 232. Implement Queue ...
leetcode 推前使用栈实现队列 使用堆栈实现队列的以下操作。 push(x) -- 将元素 x 推到队列的后面。 pop()——从队列前面移除元素。 peek() -- 获取最前面的元素。 empty() -- 返回队列是否为空。 Example: MyQueue ...
Leetcode扑克 项目简介 该项目为《剑指Offer》题解 OnlineJudge 题目 个人建议能使用LeetCode还是尽量用LeetCode。因为LeetCode题目接口更为规范,而且测试数据也更为全面。 牛客网 LeetCode 二维数组中的查找 240. ...
:page_facing_up: :chart_increasing: LeetCode刷题的源代码文件 个人LeetCode主页 原始结构 所有刷过的例题的二进制都放在了源目录下面,文本文件是代码测试文件夹。 以_结尾的表示没有做出来 数字表示题号 中文...
用两个栈实现队列(Implement_queue_with_two_stacks.java) 滑动窗口的最大值(Maximum_value_of_sliding_window.java) 包含min函数的栈(The_stack_containing_the_min_function.java) 队列的...
* [Queue](https://github.com/kamyu104/LeetCode#queue) * [Heap](https://github.com/kamyu104/LeetCode#heap) * [Tree](https://github.com/kamyu104/LeetCode#tree) * [Hash Table]...
比如“有效的括号”(Valid Parentheses)使用栈来检查括号的正确性,而“用队列实现栈”(Implement Queue using Stacks)则展示了它们的灵活应用。 3. **堆**:最大堆和最小堆常用于优先队列和优化问题。例如,...
LeetCode上的题目如"Implement Queue using Stacks"和"Implement Stack using Queues"要求用堆栈或队列来模拟另一种数据结构,这是对数据结构灵活运用能力的考察。这样的题目有助于理解堆栈和队列的本质,并提升编程...