104. 二叉树的最大深度
给定一个二叉树 root ,返回其最大深度。
二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。
本题求二叉树的最大深度,对于二叉树题目第一想法就是使用递归方法处理。如下代码处理,首先定义递归的结束条件,当root为空,则返回0。当不为空时继续向下处理,此时我们需要继续寻找当前数的左子树或者右子树,直至到达root == null这个时候我们就需要将结果返回上一级。上一级在将左右子树结果进行舍取处理继续返回上上一级。
代码如下:
public int maxDepth(TreeNode root) {
if (root == null) {
// 递归结束条件 当 当前节点为空时返回 0 无子节点可以处理
return 0;
}
// 获取当前节点的左右子树的高度
int leftHeight = maxDepth(root.left);
int rightHeight = maxDepth(root.right);
// 对比取最大值 + 1
return Math.max(leftHeight, rightHeight) + 1;
}
对于递归中有时不容易想象出如何往复处理结果,我们可以想象递归方法此时就是最后一个节点的情况。
运行结果如下:
(含有注释效果会低,去掉注释后内存由提升)
个人见解不喜勿喷!!!