104.二叉树的最大深度

104. 二叉树的最大深度 - 力扣(LeetCode)

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

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

示例 1:

复制代码
输入:root = [3,9,20,null,null,15,7]
输出:3

示例 2:

复制代码
输入:root = [1,null,2]
输出:2

提示:

  • 树中节点的数量在 [0, 10``4``] 区间内。
  • -100 <= Node.val <= 100

解题思路

递归算法

计算当前节点的左子树最大深度和右子树最大深度

选取二者中最大值作为该结点的子树最大深度值

那么该结点的最大深度则是其子树最大深度值 + 1

实现代码

java 复制代码
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    // 使用递归算法
    public int maxDepth(TreeNode root) {
        // 终止条件
        // 如果当前节点为空,深度为 0
        if(root == null){
            return 0;
        }


        // 单层递归逻辑
        int leftDepth = maxDepth(root.left);
        int rightDepth = maxDepth(root.right);


        return Math.max(leftDepth, rightDepth) + 1;
    }
}

这是我整理的笔记,目前还在学习阶段,文章中可能有错误和不足,欢迎大家斧正!

相关推荐
2401_891482178 分钟前
C++代码复杂性分析
开发语言·c++·算法
keep intensify9 分钟前
单词搜索-
算法·深度优先
zx_zx_12310 分钟前
定长滑动窗口和不定长滑动窗口
数据结构·算法
李少兄10 分钟前
企业资源计划(ERP)系统全景指南
java·前端·数据库·erp
波波七13 分钟前
SSM与Springboot是什么关系? -----区别与联系
java·spring boot·后端
myloveasuka14 分钟前
[Java]单列集合
android·java·开发语言
mjhcsp17 分钟前
C++ 梯度下降法(Gradient Descent):数值优化的核心迭代算法
开发语言·c++·算法
ok_hahaha21 分钟前
java从头开始-黑马点评-基础篇
java·开发语言
yunyun3212324 分钟前
跨语言调用C++接口
开发语言·c++·算法
m0_5180194827 分钟前
C++中的装饰器模式变体
开发语言·c++·算法