用两个栈实现队列
用两个栈来实现一个队列,完成队列的 Push
和 Pop
操作。队列中的元素为 int
类型。
Push
操作,每次都存入 stack1
;Pop
操作,每次从 stack2
取:
stack2
栈不为空时,不能将 stack1
元素倒入;stack2
栈为空时,需要一次将 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() {
if (stack2.isEmpty()) {
if (stack1.isEmpty()) {
return -1;
}
while (!stack1.isEmpty()) {
stack2.push(stack1.pop());
}
}
return stack2.pop();
}
}
我把我写的所有题解整理成了一本电子书放在了 github 上,三天内冲击到 github 排行榜榜首!近 5w 人下载阅读!要获取的话,直接进入下方链接就可以了(记得给我点个 star):
https://github.com/geekxh/hello-algorithm