用两个栈来实现一个队列,完成队列的推送和弹出操作。队列中的元素为INT类型。
我的想法:首先stack1中专门当作入队,然后stack2中存放栈1的逆序每次进栈时都要保证stack2中没有弹出出去的数据先还给栈1,之后进栈,之后再把 进栈的stack1 逆序放入stack2 这样才能保证stack2中存放的永远是进栈的数据的逆序代码如下:
import java.util.Stack;
public class Solution {
Stack<Integer> stack1 = new Stack<Integer>();
Stack<Integer> stack2 = new Stack<Integer>();
public void push(int node) {
while(stack2.size()!=0){
stack1.push(stack2.pop());
}
stack1.push(node);
while(stack1.size()!=0){
stack2.push(stack1.pop());
}
}
public int pop() {
return stack2.pop();
}
}