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

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

相关推荐
PineappleCoder几秒前
大小写 + 标点全搞定!JS 如何精准统计单词频率?
前端·javascript·算法
zzx_blog9 分钟前
简单易懂的leetcode 100题-第三篇 移动0,颜色分类,数组中的第K个最大元素
leetcode·面试
拂晓银砾11 分钟前
Java数据结构-队列
java·数据结构
重生成为编程大王12 分钟前
Java ConcurrentHashMap 深度解析
java·开发语言
John.Lewis13 分钟前
数据结构初阶(19)外排序·文件归并排序的实现
c语言·数据结构·排序算法
John.Lewis18 分钟前
数据结构初阶(16)排序算法——归并排序
c语言·数据结构·排序算法
阿华的代码王国20 分钟前
【Android】适配器与外部事件的交互
android·xml·java·前端·后端·交互
MacroZheng29 分钟前
还在用WebSocket实现即时通讯?试试MQTT吧,真香!
java·spring boot·后端
稚辉君.MCA_P8_Java44 分钟前
豆包 Java的23种设计模式
java·linux·jvm·设计模式·kubernetes
tanyongxi6644 分钟前
C++ 特殊类设计与单例模式解析
java·开发语言·数据结构·c++·算法·单例模式