思路:
①一个栈只负责入,一个栈负责一直出,没了就找入的栈全部倒入自己种
②两个都没有,返回-1
代码:
class CQueue {
Stack<Integer> in,out;
public CQueue() {
in = new Stack<>();
out = new Stack<>();
}
public void appendTail(int value) {
in.push(value);
}
public int deleteHead() {
if(out.isEmpty()){
if(in.isEmpty())return -1;
//全部倒进入,然后吐出第一个
while(!in.isEmpty()){
out.push(in.pop());
}
return out.pop();
}
else
return out.pop();
}
}