题解 | #用两个栈实现队列#
用两个栈实现队列
http://www.nowcoder.com/practice/54275ddae22f475981afa2244dd448c6
新的元素一直往栈1中存放,栈2用于存放已经排好队的准备弹出的元素
当栈2排空之后,再次要求弹出元素时,一次性把栈1中的所有元素取出存入栈2之中
Stack<Integer> stack1 = new Stack<Integer>();
Stack<Integer> stack2 = new Stack<Integer>();
public void push(int node) {
stack1.push(node);
}
public int pop() {
if (!stack2.empty()) {
return stack2.pop();
}
while (!stack1.empty()) {
stack2.push(stack1.pop());
}
return stack2.pop();
}