赞
踩
题目:232.用栈实现队列
解析:代码随想录解析
一个栈负责进,一个栈负责出
class MyQueue { Stack<Integer> stackIn; Stack<Integer> stackOut; public MyQueue() { stackIn = new Stack<>(); stackOut = new Stack<>(); } public void push(int x) { stackIn.push(x); } public int pop() { dumpStackIn(); return stackOut.pop(); } public int peek() { dumpStackIn(); return stackOut.peek(); } public boolean empty() { if (stackOut.isEmpty() && stackIn.isEmpty()) return true; return false; } public void dumpStackIn(){ if (!stackOut.isEmpty()) return; while(!stackIn.isEmpty()){ stackOut.push(stackIn.pop()); } } } /** * Your MyQueue object will be instantiated and called as such: * MyQueue obj = new MyQueue(); * obj.push(x); * int param_2 = obj.pop(); * int param_3 = obj.peek(); * boolean param_4 = obj.empty(); */
暂无
题目:225. 用队列实现栈
解析:代码随想录解析
每次使用一个辅助队列来存储后入元素,然后把队列元素插入辅助队列中,再对换索引。
class MyStack { Queue<Integer> queue1; Queue<Integer> queue2; public MyStack() { queue1 = new LinkedList<>(); queue2 = new LinkedList<>(); } public void push(int x) { queue2.offer(x); while(!queue1.isEmpty()){ queue2.offer(queue1.poll()); } Queue<Integer> queueTmp = queue1; queue1 = queue2; queue2 = queueTmp; } public int pop() { return queue1.poll(); } public int top() { return queue1.peek(); } public boolean empty() { return queue1.isEmpty(); } } /** * Your MyStack object will be instantiated and called as such: * MyStack obj = new MyStack(); * obj.push(x); * int param_2 = obj.pop(); * int param_3 = obj.top(); * boolean param_4 = obj.empty(); */
暂无
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。