剑指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的题解记录