1、题目
2、思路
题目的要求很明确,使用两个栈要模拟一个队列。简单的描述一下:
- 建立两个栈,第一个进栈栈模拟的为进入队列,只要进入队列,就掉用该方法。
- 第二步,出队列的话,使用第二个栈,如果第一个栈不空,则将第一个栈内的所有元素全部转移到第二个栈内,然后就可以对第二个栈进行出栈的操作。下面是我抄来的图,,羞耻哈!
3、代码
import java.util.Stack;
public class Solution {
// 1、初始化两个栈
Stack<Integer> stack1 = new Stack<Integer>();
Stack<Integer> stack2 = new Stack<Integer>();
public void push(int node) {
stack1.push(node);
}
public int pop() {
// 这里需要注意的是 栈2 ,如果是空的才添加,否则不添加,直接弹出就行哈
if (stack2.size() <= 0){
while (stack1.size() != 0){
stack2.push(stack1.pop());
}
}
return stack2.pop();
}
}