剑指offer - 用两个栈实现队列(Java实现)
思路:入队 - 所有元素加入stack1。出队 - 由于出队时是要删除第一个元素,也就是栈底元素,此时我们就可以启用stack2,将stack1中的元素全部push到stack2中,然后删除stack2的栈顶元素,最后将stack2中的元素全部push到stack1即可。(可以顺着这个思路考虑一下使用两个队列实现栈)
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() {
while(stack1.size() > 0) {
stack2.push(stack1.pop());
}
int val = stack2.pop();
while(stack2.size() > 0) {
stack1.push(stack2.pop());
}
return val;
}
} 【剑指offer】题目全解 文章被收录于专栏
本专栏主要是刷剑指offer的题解记录

查看11道真题和解析