【队列】LeetCode 225. 用队列实现栈
题目链接
思路
设置一个主队列 mainQueue
和一个辅助队列 assistantQueue
,在进行压栈的时候,将 mainQueue
中的元素全部放入 assistantQueue
中,再将 x
压栈,然后再将 assistantQueue
的元素放入 mainQueue
中。
代码
class MyStack{
ConcurrentLinkedQueue<Integer> mainQueue;
ConcurrentLinkedQueue<Integer> assistantQueue;
public MyStack(){
this.mainQueue = new ConcurrentLinkedQueue<>();
this.assistantQueue = new ConcurrentLinkedQueue<>();
}
public void push(int x){
if(mainQueue.isEmpty()){
mainQueue.add(x);
}else{
assistantQueue.addAll(mainQueue);
mainQueue.clear();
mainQueue.add(x);
mainQueue.addAll(assistantQueue);
assistantQueue.clear();
}
}
public int pop(){
return mainQueue.poll();
}
public int top(){
return mainQueue.peek();
}
public boolean empty(){
return mainQueue.isEmpty();
}
}