Toasobi
用两个栈实现队列(简单)
本文最后更新于2023年03月03日,已超过677天没有更新。如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!
这题我就是正解!
要注意LinkedList也可以当做栈使用,速度还比stack还快嘞
<div>
class CQueue {
LinkedList<Integer> stack1;
LinkedList<Integer> stack2;
public CQueue() {
stack1 = new LinkedList(); //输入栈
stack2 = new LinkedList(); //输出栈
}
public void appendTail(int value) {
stack1.push(value);
}
public int deleteHead() {
if(stack1.isEmpty()){ //stack1为空
if(stack2.isEmpty()){
return -1;
}
return stack2.pop();
}else{ //stack1不空
if(stack2.isEmpty()){
while(!stack1.isEmpty()){
//全部进入栈2
stack2.push(stack1.pop());
}
return stack2.pop(); //栈2弹出1个
}
else{
return stack2.pop(); //栈2弹出1个
}
}
}
}
</div>