题目: 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
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);//把node压入stack1中,当出此栈时为倒序
}
public int pop() {//出队列
if(stack1.empty()&&stack2.empty()){
throw new RuntimeException("Queue is empty!");
}
if(stack2.empty()){
while(!stack1.empty()){
//再将stack1中的元素压入到stack2中,当出此栈时为正序
stack2.push(stack1.pop());
}
}
return stack2.pop();
}
}
入栈出栈的操作会被反转,当使用两个栈时,就可以达到正序的效果。