用过两个栈实现一个队列
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
之前写过这道题,我自己想的模型就是倒米。
插入元素:直接 stack1.push
弹出元素:
- 如果stack2为空的话,那么就要先将stack1中的元素取出,并压入stack2
- 如果stack2不为空的话,那么直接 stack2.pop
import java.util.Stack;
public class Solution {
Stack<Integer> stack1 = new Stack<Integer>();
Stack<Integer> stack2 = new Stack<Integer>();
public void push(int node) {
stack1.push(node);
}
public int pop() {
if(stack2.empty()){
while(!stack1.empty()){
stack2.push(stack1.pop());
}
}
return stack2.pop();
}
}
测试用例:
- 往空的队列里添加、删除元素
- 往非空的队列里添加、删除元素
- 连续删除元素直至队列为空