标签:
Implement the following operations of a queue using stacks.
Notes:
push to top
, peek/pop from top
, size
, and is empty
operations are valid.Analysis:
Maintain a push stack and a pop stack. For pop(), if pop stack is empty, we move all elements in push stack into pop stack. After that, we can always pop until pop stack is empty.
Solution:
class MyQueue { Stack<Integer> pushQ = new Stack<Integer>(); Stack<Integer> popQ = new Stack<Integer>(); // Push element x to the back of queue. public void push(int x) { pushQ.push(x); } // Removes the element from in front of queue. public void pop() { peek(); popQ.pop(); } // Get the front element. public int peek() { if (popQ.isEmpty()) while (!pushQ.empty()){ popQ.push(pushQ.pop()); } return popQ.peek(); } // Return whether the queue is empty. public boolean empty() { return popQ.empty() && pushQ.empty(); } }
LeetCode-Implement Queue using Stacks
标签:
原文地址:http://www.cnblogs.com/lishiblog/p/5870456.html