//方法一:栈1存数据,栈2弹出数据。
import java.util.*;
import java.lang.*;
public class Solution {
Stack<Integer> stack1 = new Stack<Integer>();
Stack<Integer> stack2 = new Stack<Integer>();
public void push(int node) {
stack1.push(node); //栈1用于压入数据
}
//栈2用于弹出数据,实现队列的先进先出
public int pop() {
// 先判断stack2是否为空时,若为空,把栈1中的数据全部弹出压入栈2,实现逆序
if (stack2.isEmpty()){
while (!stack1.isEmpty()){ //当栈1不为空,数据一直迁移,直至栈为空
stack2.push(stack1.pop());
}
}
// 再次判断stack2,如果仍然为空,说明,栈1也没有数据了,那么就抛出异常
if (stack2.isEmpty()){
throw new RuntimeException("队列中无元素");
}
return stack2.pop(); //完成以上判断后,最后弹出栈2的值,实现先进先出
}
}