二叉树的最大深度是指从根节点到最远叶子节点的最长路径上的节点数。对于给定的二叉树,可以通过递归的方式计算其最大深度。以下是详细的解答:
方法思路- 递归出口:如果当前节点为空(即root == null),则返回深度0。
- 递归计算左右子树深度:对于非空节点,递归计算其左子树和右子树的深度。
- 比较左右子树深度:取左右子树深度的较大值,并加1(当前节点的深度),作为当前子树的最大深度。
解决代码class Solution { public int maxDepth(TreeNode root) { int deep = 0; if (root != null) { int lchildeep = maxDepth(root.left); int rchildeep = maxDepth(root.right); deep = lchildeep > rchildeep ? lchildeep + 1 : rchildeep + 1; } return deep; }}代码解释- 递归出口:当root为null时,表示当前子树为空,返回深度0。
- 递归计算左右子树深度:分别递归调用maxDepth方法计算左子树(root.left)和右子树(root.right)的深度。
- 比较并返回当前子树的最大深度:通过比较左右子树的深度,选择较大的值并加1(当前节点的深度),作为当前子树的最大深度返回。
这种方法通过递归遍历每个节点,确保计算从根节点到最远叶子节点的最长路径上的节点数,从而得到二叉树的最大深度。