Letcode 剑指offer 09:用两个栈实现队列
appendTail:相当于进队列
deleteHead:相当于出队列
通过栈的先进后出实现队列的先进先出
代码:
class CQueue {
//申明两个栈
Stack<Integer> s1 = new Stack<Integer>();
Stack<Integer> s2 = new Stack<Integer>();
public CQueue() {
}
public void appendTail(int value) {
//进队列
s1.push(value);
}
public int deleteHead() {
if(s1.empty()&&s2.empty()){
return -1;
}
if(s2.empty()){
while(!s1.empty()){
int temp = s1.pop();
s2.push(temp);
}
}
return s2.pop();
}
}
/**
* Your CQueue object will be instantiated and called as such:
* CQueue obj = new CQueue();
* obj.appendTail(value);
* int param_2 = obj.deleteHead();
*/