leetcode-implement-stack-using-queues 发表于 2017-01-23 | 分类于 算法 , leetcode | 题目大意 https://leetcode.com/problems/implement-stack-using-queues/ 利用队列实现一个栈 题目分析 使用两个队列,插入时借助辅助队列调整为正确的出栈顺序即可。 代码12345678910111213141516171819202122232425262728293031323334353637383940414243444546public class MyStack { Queue<Integer> q1; Queue<Integer> q2; /** Initialize your data structure here. */ public MyStack() { q1 = new ArrayDeque<Integer>(); q2 = new ArrayDeque<Integer>(); } /** Push element x onto stack. */ public void push(int x) { while (!q1.isEmpty()) { q2.add(q1.remove()); } q1.add(x); while (!q2.isEmpty()) { q1.add(q2.remove()); } } /** Removes the element on top of the stack and returns that element. */ public int pop() { return q1.remove(); } /** Get the top element. */ public int top() { return q1.peek(); } /** Returns whether the stack is empty. */ public boolean empty() { return q1.isEmpty(); }}/** * 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(); */