提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
用两个栈模拟队列
思路分析
提示:这里可以添加本文要记录的大概内容:
这里有两个栈,一个栈stack1用来模拟队列的入队,一个栈stack2用来模拟队列的出队
提示:以下是本篇文章正文内容,下面案例可供参考
代码实现
代码实现如下:
public class Solution {
Stack<Integer> stack1 = new Stack<Integer>();//用来模拟队列入列
Stack<Integer> stack2 = new Stack<Integer>();//用来模拟队列出列
public void push(int node) {
stack1.push(node); //直接入栈1
}
public int pop() {
/*如果栈2为空就代表没有进行过出队操作
所以需要把栈1里面的元素全部压入栈2中,进行模拟队的出队操作
*/
if(stack2.isEmpty()) {
while(!stack1.isEmpty()) {
stack2.push(stack1.pop());
}
}
/*如果栈2不为空就代表之前的操作已经使用过出队操作,直接取出栈2的栈顶
元素就是当前出队的那个元素*/
return stack2.pop();
}
}