理解题目:使用2个栈实现先进先出

思路:数据进入栈1【1,2,3】,从栈1出数进栈2【3,2,1】,输出栈2中的数3,2,1,即实现了栈1的先进先出。这里有一个要注意的点就是数据不是一次性进入栈1然后一次性从栈2出来,所以要考虑变道的情况。但总体原则都是不变的,从栈1进,栈2出,只要栈2没数据了,就找栈1要,直到栈1也没数据了。


    public void push(int node) {
        stack1.push(node);
    }

    public int pop() {
        if (stack2.isEmpty()) {
            while (!stack1.isEmpty()) {
                stack2.push(stack1.pop());
            }
        }
        return stack2.pop();
    }
}