力扣 二叉树 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;
    }
}
相关推荐
疑惑的杰瑞21 分钟前
[数据结构]带头双向循环链表的实现与应用
c语言·数据结构·算法·链表
爱米的前端小笔记27 分钟前
前端面试:项目细节重难点问题分享(18)
前端·经验分享·面试·职场和发展·求职招聘
Liu_Junwei42 分钟前
回溯算法解决排列组合及子集问题
数据结构·算法
DdddJMs__1351 小时前
C语言 | Leetcode C语言题解之第454题四数相加II
c语言·leetcode·题解
xiao_fwuu1 小时前
LeetCode 120. 三角形最小路径和
算法·leetcode·职场和发展
黎明smaly2 小时前
【数据结构与算法初阶】前言介绍
c语言·开发语言·数据结构·算法
鱼跃鹰飞2 小时前
大厂面试真题-说说synchronized的锁升级过程
java·面试·职场和发展
single5942 小时前
【优选算法】(第十八篇)
java·数据结构·c++·vscode·算法·leetcode
视觉人机器视觉2 小时前
爸妈总说着学门技术,学机器视觉技术确实是一条踏实的生活道路,这条路你走得下去走得通吗?
人工智能·算法·计算机视觉·c#·自动化
学步_技术2 小时前
自动驾驶系列—从IMU到惯性定位算法:自动驾驶精准定位的幕后科技
科技·算法·自动驾驶·imu·惯性测量单元