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
实现代码
/*** 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) {// 终止条件// 如果当前节点为空,深度为 0if(root == null){return 0;}// 单层递归逻辑int leftDepth = maxDepth(root.left);int rightDepth = maxDepth(root.right);return Math.max(leftDepth, rightDepth) + 1;}
}
这是我整理的笔记,目前还在学习阶段,文章中可能有错误和不足,欢迎大家斧正!