题目描述:
思路:调用add方法时加入一个栈中。调用del方法时,先判断第二个栈是否为空,若为空,则将第一个栈的全部元素退出并加入到第二个栈中,实现队列的先入先出功能。
代码如下:
class CQueue {
LinkedList<Integer> stack1;
LinkedList<Integer> stack2;
public CQueue() {
//初始化两个栈
stack1=new LinkedList<>();
stack2=new LinkedList<>();
}
public void appendTail(int value) {
stack1.add(value);
}
public int deleteHead() {
if(stack2.isEmpty()){
if(stack1.isEmpty()){
return -1;
}
while (!stack1.isEmpty()){
stack2.add(stack1.pop());
}
return stack2.pop();
}else {
return stack2.pop();
}
}
}
/**
* Your CQueue object will be instantiated and called as such:
* CQueue obj = new CQueue();
* obj.appendTail(value);
* int param_2 = obj.deleteHead();
*/