题解 | #用两个栈实现队列#
用两个栈实现队列
http://www.nowcoder.com/practice/54275ddae22f475981afa2244dd448c6
栈:连续进栈的一串元素顺序和连续出栈响应个数的元素顺序相反;
队列:进队一串元素的数据顺序和出队的顺序一样;
栈1,队列的预备数据存储地;
栈2,将栈1出栈元素压栈,这时:当栈2
Stack<Integer> stack1 = new Stack<>();
Stack<Integer> stack2 = new Stack<>();
public void push(int node) {
stack1.push(node);
}
public int pop() {
if (stack2.isEmpty()) {
while (!stack1.isEmpty()) {
stack2.push(stack1.pop());
}
}
return stack2.pop();
}