题目描述
用两个栈来实现一个队列,完成队列的 Push 和 Pop 操作。 队列中的元素为 int 类型。
解题思路
- 其中 stack1 用来 push,stack2 用来 pop;
- push 可以直接对 stack1 进行 push;
- pop 的时候判断 stack2 是否是空的:
- 如果 stack2 是空的,也就说明此时的值都在 stack1 内,从 stack1 导入 stack2 就可以;
- 如果 stack2 不为空,直接 pop。
两个 stack 各司其职,可以避免每次所有结点都要导入导出。
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() {
if (stack2.isEmpty())
while (!stack1.isEmpty())
stack2.push(stack1.pop());
return stack2.pop();
}
}
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于