理解题目:使用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();
}
}