队列OJ题——用队列实现栈
文章目录
- 一、题目链接
- 二、解题思路
- 三、解题代码
一、题目链接
用队列实现栈
二、解题思路
三、解题代码
class MyStack {public Queue<Integer> queue1;public Queue<Integer> queue2;public int usedSize;public MyStack() {queue1 =new LinkedList<>();queue2 =new LinkedList<>();}public void push(int x) {if(!queue1.isEmpty()){queue1.offer(x);}else if(!queue2.isEmpty()){queue2.offer(x);}else{queue1.offer(x);}usedSize++;}public int pop() {//queue.size - 1 个元素if(!queue1.isEmpty()){int curSize = queue1.size();for(int i = 0; i < curSize - 1 ; i++){queue2.offer(queue1.poll());}usedSize--;return queue1.poll();}else if(!queue2.isEmpty()){int curSize = queue2.size();for(int i = 0; i < curSize - 1 ; i++){queue1.offer(queue2.poll());}usedSize--;return queue2.poll();}else{return -1;}}public int top() {if(!queue1.isEmpty()){int curSize = queue1.size();int ret = -1;for(int i = 0; i < curSize; i++){ret = queue1.poll();queue2.offer(ret);}return ret;}else if(!queue2.isEmpty()){int curSize = queue2.size();int ret = -1;for(int i = 0; i < curSize; i++){ret = queue2.poll();queue1.offer(ret);}return ret;}else{return -1;}}public boolean empty() {if(queue1.isEmpty() && queue2.isEmpty()){return true;}return false;}/*public boolean empty() {if(usedSize == 0){retunr true;}return false;}*/}