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

用两个栈实现队列

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

class Solution
{
public:
    void push(int node) {
        while(!stack2.empty()) // 先判断stack2是否为空,如果为空,则将stack2中的元素转移到stack1中
        {
            int tmp = stack2.top();
            stack2.pop();
            stack1.push(tmp);
        }
        stack1.push(node); // stack1正常将1元素入队列
    }

    int pop() {
        while(!stack1.empty())//出队列时,先将元素从stack1中转移到stack2中
        {
            int tmp = 0;
            tmp = stack1.top();
            stack1.pop();
            stack2.push(tmp);
        }
        int fan = stack2.top();// 此时,stack2中的栈顶元素就是队列的队首元素
        stack2.pop();
        return fan;
    }
private:
    stack<int> stack1; // 负责入队
    stack<int> stack2; // 负责出队
};

全部评论

相关推荐

03-10 11:23
门头沟学院 Java
鹿LF:计算机面试就跟数学题一样,没什么实际价值,但只能这么筛选,本质是考察你的努力,智力和学习能力
点赞 评论 收藏
分享
03-27 01:58
已编辑
西北工业大学 Java
在平静中度过当下:如果这个bg也简历挂的话可能他们现在不缺人了吧,我也是这两天投的,阿里和快手投的岗都是简历秒挂
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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