思路
借助栈的先进后出规则模拟实现队列的先进先出
- 1、当插入时,直接插入 stack1
- 2、当弹出时,当 stack2 不为空,弹出 stack2 栈顶元素,如果 stack2 为空,将 stack1 中的全部数逐个出栈入栈 stack2,再弹出 stack2 栈顶元素
代码实现
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();
}
}