力扣 二叉树 104. 二叉树的最大深度

104. 二叉树的最大深度

一、题目描述

二、理解

对照二叉树的递归定义:

  • 如果树为空,则它是一个空树。
  • 如果树不为空,它由一个根节点和两个子树组成,分别是左子树和右子树,且左子树和右子树本身也是二叉树。
    采用递归形式解决问题:
  • 首先判断 root 是否 null,若为 null,则该树的的深度为0。
  • 若 root 不为 null,则该树的最大深度为,max (左子树的最大深度, 右子树最大深度) + 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) {
        if (root == null) {
            return 0;
        }
        int leftDepth = maxDepth(root.left);
        int rightDepth = maxDepth(root.right);
        return Math.max(leftDepth, rightDepth) + 1;
    }
}
相关推荐
wuweijianlove16 分钟前
算法设计中的空间复用与数据对齐优化的技术5
算法
yuan199971 小时前
基于 MATLAB PSO 工具箱的函数寻优算法
开发语言·算法·matlab
YUANQIANG20241 小时前
博弈论中势函数与势博弈构造:为什么看似 “先射箭后画靶”
算法·信息与通信
WBluuue1 小时前
Codeforces 1096 Div3(ABCDEFGH)
c++·算法
wanzehongsheng1 小时前
基于天文算法的双轴太阳能追踪系统:从原理到工程实现
算法
basketball6161 小时前
Kadane算法 C++实现
java·c++·算法
handler011 小时前
【C++】二叉搜索树详解及其模拟实现(代码)
开发语言·c++·算法·c··二叉搜索树·搜索树
luj_17681 小时前
残熵算法的稳健防灾逻辑
c语言·开发语言·c++·经验分享·算法
玖釉-1 小时前
二叉树基础详解:TreeNode、buildTree、deleteTree 与 printTree 的实现原理(C++)
c++·windows·算法
Severus_black1 小时前
【初阶数据结构与算法】八大排序之非比较排序(计数排序),一次性讲清!
数据结构·算法·排序算法