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;
    }
}

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

相关推荐
编码追梦人19 小时前
基于 STM32 的智能语音唤醒与关键词识别系统设计 —— 从硬件集成到算法实现
stm32·算法·struts
摇滚侠20 小时前
Spring Boot3零基础教程,SpringApplication 自定义 banner,笔记54
java·spring boot·笔记
青云交20 小时前
Java 大视界 -- Java 大数据机器学习模型在游戏用户行为分析与游戏平衡优化中的应用
java·大数据·机器学习·数据存储·模型构建·游戏用户行为分析·游戏平衡优化
循着风21 小时前
二叉树的多种遍历方式
数据结构·算法
暗武逢天1 天前
Java导出写入固定Excel模板数据
java·导出数据·easyexcel·excel固定模板导出
摇滚侠1 天前
Spring Boot3零基础教程,KafkaTemplate 发送消息,笔记77
java·spring boot·笔记·后端·kafka
fat house cat_1 天前
【netty】基于主从Reactor多线程模型|如何解决粘包拆包问题|零拷贝
java·服务器·网络·netty
.格子衫.1 天前
022数据结构之树状数组——算法备赛
数据结构·算法·1024程序员节
黑科技Python1 天前
生活中的“小智慧”——认识算法
学习·算法·生活
Yupureki1 天前
从零开始的C++学习生活 16:C++11新特性全解析
c语言·数据结构·c++·学习·visual studio