class CQueue {
public:
//时间O(n), 空间O(n)
CQueue() {
}
void appendTail(int value) {
st1.push(value);
}
int deleteHead() {
if(!st2.empty()) {
int head = st2.top();
st2.pop();
return head;
} else {
if(st1.empty()) return -1;
while(!st1.empty()) {
st2.push(st1.top());
st1.pop();
}
int head = st2.top();
st2.pop();
return head;
}
}
private:
stack<int> st1, st2;
};
/**
* Your CQueue object will be instantiated and called as such:
* CQueue* obj = new CQueue();
* obj->appendTail(value);
* int param_2 = obj->deleteHead();
*/
剑指 Offer 09. 用两个栈实现队列
最新推荐文章于 2023-08-28 18:19:36 发布