思路

借助栈的先进后出规则模拟实现队列的先进先出

  • 1、当插入时,直接插入 stack1
  • 2、当弹出时,当 stack2 不为空,弹出 stack2 栈顶元素,如果 stack2 为空,将 stack1 中的全部数逐个出栈入栈 stack2,再弹出 stack2 栈顶元素

alt alt

代码实现

import java.util.*;

public class Solution {
    //存放入栈元素
    Stack<Integer> stack1 = new Stack<Integer>();
    //存放出栈元素
    Stack<Integer> stack2 = new Stack<Integer>();
   
    public void push(int node) {
         //插入时直接插入到 stack1 
        stack1.push(node);
    }
    
    public int pop() {
    //stack2为空将stack1元素全部插入到stack2 
        if(stack2.isEmpty()){
        while(stack1.size()>0){
            stack2.push(stack1.pop());
                    }
        }
            //不为空时删除直接返回stack2的顶部元素
            return stack2.pop();
       
        
    }
}