题目:两个栈实现队列
思路:
入队列统一压到1栈;
出队列时,借助2栈:1栈元素依次出栈压入2栈,此时,2栈栈顶元素是队列需要出队的元素,将其弹出,最后再把2栈元素依次出栈压回1栈,返回弹出的元素。
代码:
import java.util.Stack;
public class Solution {
Stack<Integer> stack1 = new Stack<Integer>();
Stack<Integer> stack2 = new Stack<Integer>();
public void push(int node) {
stack2.push(node);
}
public int pop() {
while (!stack2.isEmpty()) {
stack1.push(stack2.pop());
}
int res = stack1.pop();
while (!stack1.isEmpty()) {
stack2.push(stack1.pop());
}
return res;
}
}