题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 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.add(node); } public int pop() { if(stack2.isEmpty()) {//情况一 1、如果stack2为空 while(!stack1.isEmpty()) { stack2.add(stack1.pop());//情况一 2、将stack1元素全部入栈stack2 } }else{ return stack2.pop();//情况二 stack2有元素就直接出栈 } return stack2.pop();//情况一 3、stack2全部出栈 } } 思路:栈是先进的后出,队列是先进先出 push时先让所有元素进stack1,pop时,判断stack2是否有元素,没有,就将stack1元素全部出栈到stack2,然后stack2出栈,有元素就直接出栈 (如果stack2有元素,那么stack1一定没有元素)