侧边栏壁纸
博主头像
Hope博主等级

努力赚钱的工科研究生

  • 累计撰写 362 篇文章
  • 累计创建 129 个标签
  • 累计收到 5 条评论
标签搜索

剑指 Offer 09. 用两个栈实现队列

Hope
2022-04-01 / 0 评论 / 0 点赞 / 324 阅读 / 490 字
温馨提示:
本文最后更新于 2022-04-01,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

剑指 Offer 09. 用两个栈实现队列

思路:

一个栈用来辅助,另一个用来维护队列的值。

代码:

class CQueue {
public:
    CQueue() {

    }
    
    void appendTail(int value) {
        stk1.push(value);
    }
    
    int deleteHead() {
        if(stk1.empty()) return -1;
        while(stk1.size() != 1){
            stk2.push(stk1.top());
            stk1.pop();
        }
        int res = stk1.top();
        stk1.pop();
        while(stk2.size()) {
            stk1.push(stk2.top());
            stk2.pop();
        }
        return res;
    }
    stack<int> stk1;
    stack<int> stk2;
};

/**
 * Your CQueue object will be instantiated and called as such:
 * CQueue* obj = new CQueue();
 * obj->appendTail(value);
 * int param_2 = obj->deleteHead();
 */

0

评论区