题解 | #用两个栈实现队列#
用两个栈实现队列
http://www.nowcoder.com/practice/54275ddae22f475981afa2244dd448c6
import java.util.Stack; public class Solution { // stack1用来记录现在存入的数值 Stack<Integer> stack1 = new Stack<Integer>(); // stack2用来记录现在要弹出的数值 Stack<Integer> stack2 = new Stack<Integer>(); public void push(int node) { stack1.push(node); } public int pop() { // 如果stack2不为空,说明现在有数值可以弹出,直接弹出 if(!stack2.isEmpty()){ return stack2.pop(); } // 如果stack2为空,则将stack1中的数值按照进入的顺序逐个压入stack2 // 现在stack2中就是正常的可以弹出的顺序 else{ while(!stack1.isEmpty()){ stack2.push(stack1.pop()); } } return stack2.pop(); } }