剑指第二版第9题用栈创造出一个队
做题总结:
- 感觉剑指上面的题的难度都还算是比较人性化的,没有什么可以刁难人的意思.
class CQueue {
Stack<Integer> inputStack;
Stack<Integer> outputStack;
int size;
public CQueue() {
this.size = 0;
inputStack = new Stack();
outputStack = new Stack();
}
public void appendTail(int value) {
inputStack.push(value);
size++;
}
public int deleteHead() {
if (size == 0) {
return -1;
}
//这里其实是需要思考一下的,因为这里是调用了两个栈,删除节点的时候,就是从头部开始的,必须对情况进行整合,如果出栈为null,就需要先往里面添加,则
if (outputStack.isEmpty()) {
while (!inputStack.isEmpty()) {
outputStack.push(inputStack.pop());
}
}
size--;
return outputStack.pop();
}
}