给定一个二叉树 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;
}
}
这是我整理的笔记,目前还在学习阶段,文章中可能有错误和不足,欢迎大家斧正!