题解 | #用两个栈实现队列#

用两个栈实现队列

https://www.nowcoder.com/practice/54275ddae22f475981afa2244dd448c6

class Solution
{
public:
    void push(int node) {
        stack1.push(node);  //push操作,直接将node压入stack1中
    }

    int pop() {
        int num = 0;
        if(stack2.empty()){    // 如果stack2为空
            while(!stack1.empty()){ // 首先要把stack1中元素依次压入stack2中
                stack2.push(stack1.top());
                stack1.pop();
            }
            num = stack2.top(); // 获取stack2栈顶元素,即为队头元素
            stack2.pop();   // 出栈,删除队头元素
            return num; // 返回队头元素
        }
        // 如果stack2不为空,则直接获取栈顶元素,返回即可
        num = stack2.top(); 
        stack2.pop();
        return num;
    }

private:
    stack<int> stack1;
    stack<int> stack2;
};

全部评论

相关推荐

不愿透露姓名的神秘牛友
06-27 15:19
简历上能写3个月吗?
码农索隆:大胆写,主要你能把实习经历包装好,可以看一下我这篇帖子https://www.nowcoder.com/share/jump/4888395581180798063
点赞 评论 收藏
分享
05-12 11:09
已编辑
门头沟学院 后端
已注销:没必要放这么多专业技能的描述。这些应该是默认已会的,写这么多行感觉在凑内容。项目这块感觉再包装包装吧,换个名字,虽然大家的项目基本都是网上套壳的,但是你这也太明显了。放一个业务项目,再放一个技术项目。技术项目,例如中间件的一些扩展和尝试。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务