思路:入队 - 所有元素加入stack1。出队 - 由于出队时是要删除第一个元素,也就是栈底元素,此时我们就可以启用stack2,将stack1中的元素全部push到stack2中,然后删除stack2的栈顶元素,最后将stack2中的元素全部push到stack1即可。(可以顺着这个思路考虑一下使用两个队列实现栈)
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() {
        while(stack1.size() > 0) {
            stack2.push(stack1.pop());
        }
        int val = stack2.pop();
        while(stack2.size() > 0) {
            stack1.push(stack2.pop());
        }
        return val;
    }
} 
 京公网安备 11010502036488号
京公网安备 11010502036488号