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

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

相关推荐
百***61871 天前
Spring的构造注入
android·java·spring
小白宗轩1 天前
vsCode的java配置
java·vscode·python
桦说编程1 天前
如果让我从头再来学习并发编程
java·设计模式·性能优化
Espresso Macchiato1 天前
Leetcode 3748. Count Stable Subarrays
算法·leetcode·职场和发展·leetcode hard·leetcode 3748·leetcode周赛476·区间求和
大袁同学1 天前
【哈希hash】:程序的“魔法索引”,实现数据瞬移
数据结构·c++·算法·哈希算法·散列表
414丶小哥1 天前
Jetbrains系列工具 Idea Websotrm中使用Claude Code
java·ide·intellij-idea·claudecode
一水鉴天1 天前
整体设计 全面梳理复盘 之39 生态工具链 到顶级表征及其完全公理化
大数据·人工智能·算法
Moonbit1 天前
入围名单公布|2025 MGPIC 决赛即将拉开帷幕!
后端·算法
zhouyunjian1 天前
syncronized使用与深入研究
java·开发语言