文章目录
- 题目
- 总结
- 代码
- 运行结果
题目
用栈实现队列 leetcode :232
总结
时间复杂度
平均下来每个方式是O(1)
代码
java"> class MyQueue {public Stack<Integer> in;public Stack<Integer> out;//初始化public MyQueue() {in = new Stack<>();out = new Stack<>();}//倒数据//从in栈 倒入 out栈//out栈为空才能倒数据//in栈有数据才能倒,且必须全部倒入out栈private void inToOut(){if(out.empty()){while(!in.empty()){//不是空就一直倒out.push(in.pop());//从in里弹出的数据进入out}}}//加入数据public void push(int x){in.push(x);inToOut();//加入一个数据你看能不能倒数据,能就倒,不能就啥也不做}//弹出一个数public int pop(){inToOut();return out.pop();}//不弹出,返回队列头部public int peek(){inToOut();return out.peek();}//判空public boolean empty(){return in.isEmpty() && out.isEmpty();}}