C语言 | Leetcode C语言题解之第559题N叉树的最大深度

news/2024/11/15 0:51:32 标签: C语言, Leetcode, 题解

题目:

题解

/**
 * Definition for a Node.
 * struct Node {
 *     int val;
 *     int numChildren;
 *     struct Node** children;
 * };
 */

int maxDepth(struct Node* root) {
    if (!root) {
        return 0;
    }

    int depth = 0;
    // 创建空队列
    const int qCap = 10e4 + 1;
    struct Node **q = (struct Node **)malloc(sizeof(struct Node*) * qCap);
    int front = 0, rear = 0;
    // 队列初始化
    q[rear] = root;
    rear = (rear + 1) % qCap;
    int qSize = (rear - front + qCap) % qCap;

    while (qSize != 0) {
        while (qSize > 0) {
            struct Node *n = q[front];
            front = (front + 1) % qCap;

            struct Node **children = n->children;
            for (int i = 0; i < n->numChildren; i++) {
                q[rear] = children[i];
                rear = (rear + 1) % qCap;
            }
            qSize--;
        }
        qSize = (rear - front + qCap) % qCap;
        depth++;
    }
    free(q);
    return depth;
}

http://www.niftyadmin.cn/n/5752514.html

相关文章

MaxKB

docker 安装 MaxKB docker run -d --namemaxkb --restartalways -p 8080:8080 -v ~/.maxkb:/var/lib/postgresql/data -v ~/.python-packages:/opt/maxkb/app/sandbox/python-packages cr2.fit2cloud.com/1panel/maxkbdocker psCONTAINER ID IMAGE …

构建现代 Python Web 应用的最佳实践:从 FastAPI 到 Tortoise ORM20241113

构建现代 Python Web 应用的最佳实践&#xff1a;从 FastAPI 到 Tortoise ORM 随着现代 Web 开发技术的快速演进&#xff0c;Python 的生态系统涌现出了诸多优秀的框架和工具&#xff0c;FastAPI 和 Tortoise ORM 就是其中的佼佼者。这篇博客将围绕如何使用这两款工具构建高效、…

鸿蒙 入门——ArkUI 自定义组件间的“后代“双向同步@Provide和@Consume装饰器小结(五)

文章大纲 引言一、Provide和Consume装饰器概述1、Provide和Consume关系的绑定2、使用规则3、变量的传递/访问规则4、支持的观察变化的场景5、Provide和Consume变量的值初始化和更新机制5.1、初始渲染5.2、当Provide装饰的数据变化时&#xff1a;5.3、当Consume装饰的数据变化时…

18 为什么这些SQL语句逻辑相同,性能却差异巨大?

Hello&#xff01;欢迎各位新老朋友来看小弟博客&#xff0c;祝大家事业顺利&#xff0c;财源广进&#xff01;&#xff01; 在 MySQL 中&#xff0c;有很多看上去逻辑相同&#xff0c;但性能却差异巨大的 SQL 语句。对这些语句使用不当的话&#xff0c;就会不经意间导致整个数…

微信小程序——实现二维码扫描功能(含代码)

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

Microsoft 365 Exchange如何设置可信发件IP白名单

1、 进入到 Microsoft 365 admin center 管理中心 &#xff0c;点击 管理中心 下的 安全 在弹出的新页面中&#xff0c;依次点击 策略和规则 – 威胁策略 – 反垃圾邮件 再单击 连接筛选器策略(默认) – 编辑连接筛选器策略 2、在 IP 允许列表 中添加可信邮件 IP 段&#xff0…

Maven从浅入深(理解篇)

前言 在软件开发领域&#xff0c;包管理器是不可或缺的工具&#xff0c;它们帮助开发者管理和维护项目中的依赖库。通过对比.NET的NuGet包、Python的pip包以及Java的Maven&#xff0c;我们可以从原理上更深刻地理解这些工具的作用和差异。 1. NuGet&#xff08;.NET&#xff0…

关于离散模型优化的一份介绍

离散模型优化是运筹学和计算机科学领域中的一个重要分支&#xff0c;它主要研究如何在有限的、通常是计数的决策变量空间中寻找最优解。这类问题通常出现在资源分配、生产计划、物流管理、网络设计等实际应用场景中。在这篇文章中就将介绍离散模型优化中关于线性规划等部分内容…