import java.util.*;
import java.util.Stack;
public class Solution {
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.isEmpty()){
while(!stack1.isEmpty()){
stack2.push(stack1.pop());
}
}
return stack2.pop();
}
}
stack1 属于队尾,执行push操作,就是往队尾添加新元素,即 stack1.push(node);
stack2 属于队头,执行pop操作,如果 stack2 中有元素,则已经是按照队列先入先出的顺序排列了,pop操作只需要stack2.pop()即可。
当stack2中没有元素时,就需要将stack1中的元素倒入stack2中,形成先入先出的队头。



京公网安备 11010502036488号