题目描述:
思路:思路很简单,队尾添加元素添加到一个栈中,需要删除队头元素时将一个栈的所有元素弹出到另一个栈,需要注意的就是不是每次删除都需要将A栈中的所有元素都弹出到B栈,只有当B栈为空时才需要弹出
class CQueue {
private Deque<Integer> deque1;
private Deque<Integer> deque2;
public CQueue() {
this.deque1=new LinkedList();
this.deque2=new LinkedList();
}
public void appendTail(int value) {
deque1.push(value);
}
public int deleteHead() {
if(deque2.isEmpty()){
while(!deque1.isEmpty()){
deque2.push(deque1.pop());
}
}
if(deque2.isEmpty())return -1;
else{
int result=deque2.pop();
return result;
}
}
}