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;
};
相关推荐
2301_817497336 分钟前
C++中的装饰器模式高级应用
开发语言·c++·算法
m0_549416669 分钟前
C++编译期字符串处理
开发语言·c++·算法
m0_581124199 分钟前
C++中的适配器模式实战
开发语言·c++·算法
A尘埃14 分钟前
零售连锁店生鲜品类销量预测——线性回归(Linear Regression)
算法·线性回归·零售
u01092727128 分钟前
C++与人工智能框架
开发语言·c++·算法
Fleshy数模38 分钟前
从欠拟合到正则化:用逻辑回归破解信用卡失信检测的召回率困境
算法·机器学习·逻辑回归
im_AMBER44 分钟前
Leetcode 111 两数相加
javascript·笔记·学习·算法·leetcode
TracyCoder1231 小时前
LeetCode Hot100(21/100)——234. 回文链表
算法·leetcode·链表
可涵不会debug1 小时前
Redis魔法学院——第四课:哈希(Hash)深度解析:Field-Value 层级结构、原子性操作与内部编码优化
数据库·redis·算法·缓存·哈希算法
@––––––1 小时前
力扣hot100—系列1
算法·leetcode·职场和发展