LeetCode 热题 100——二叉树——二叉树的最大深度

38. 二叉树的最大深度

题目描述

给定一个二叉树 root ,返回其最大深度。

二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。

示例 1:

输入:root = 3,9,20,null,null,15,7

输出:3

示例 2:

输入:root = 1,null,2

输出:2

提示:

树中节点的数量在 0, 104 区间内。

-100 <= Node.val <= 100

求解

深度优先遍历,一棵树的深度就是 max(l, r) + 1,代码如下:

js 复制代码
var maxDepth = function(root) {
    if (!root) return 0;
    return Math.max(maxDepth(root.left), maxDepth(root.right)) + 1;
};

广度优先遍历(层遍历)

需要一个队列来维护每一层的节点,遍历一层,用一个 计数器来计算层数。

js 复制代码
var maxDepth = function(root) {
    // 广度优先搜索
    // 一层一层拓展,用一个计数器 计数
    if (!root) return 0;
    let queue = [], ans = 0;
    queue.push(root);
    while(queue.length !== 0) {
        let tmp = [];
        for (let node of queue) {
            if (node.left) tmp.push(node.left);
            if (node.right) tmp.push(node.right);
        }
        queue = tmp
        ans += 1;
    }
    return ans;
};
相关推荐
GreenTea1 小时前
深度解读 Anthropic 多智能体报告:更强的模型 ≠ 更好的协调
前端·后端·算法
fqq32 小时前
力扣刷题前置Java语法
算法·leetcode·职场和发展
Thecozzy4 小时前
大厂 AI Coding 面试大招
人工智能·面试·职场和发展
半夏微凉半夏殇4 小时前
x11与weston对比,优先选哪个
leetcode·均值算法·eclipse
2501_906565124 小时前
数学之美探究
算法
oier_Asad.Chen4 小时前
【洛谷题解/AcWing题解/OI学习笔记】洛谷P2868【USACO07DEC】Sightseeing Cows G(01分数规划求最大比率)
算法·图论·spfa·二分·负环
Dr.kangder5 小时前
嵌入式面试总结(十五)——异常处理
单片机·面试·职场和发展·系统架构·嵌入式
leisoo80976 小时前
财报数据怎么排雷本地化Python构建财务异常预警系统
人工智能·python·算法
luj_17688 小时前
塔防牌:策略与卡牌的智慧碰撞
服务器·c语言·开发语言·经验分享·算法
郝学胜-神的一滴9 小时前
干货版《算法导论》17:二叉树核心原理、遍历逻辑与高阶实操全解
数据结构·c++·python·算法·计算机·编程