首先把题目要求放在这里:
给定一个二叉树,找出其最大深度。
二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
说明: 叶子节点是指没有子节点的节点。
图示树状结构:
3
/ \
9 20
/ \
15 7
本道题大眼一看,明白了~绝对是利用递归计算,这道题在力扣上难度为简单,虽然简单但是极为不平凡,如果对递归不熟悉的同学,可能就会绕晕了,下面是博主给出的代码,三行完事
object Solution {
def maxDepth(root: TreeNode): Int = {
if(root == null) return 0
Math.max(maxDepth(root.left) + 1 , maxDepth(root.right) + 1)
}
}
其实各位不明白的同学调理清楚思路也就很明白了,不过力扣上的其它大神的写法都是基本类似的,像这种递归题目确实不难(放在简单题目中也是理所应当~)
下面给出博主的思路,大家有兴趣的可以多做些相关的题目:
- 求一颗数的最大深度,那么我只需要获取到左子树和右子树的最大深度即可
- 递归问题就是不断在缩小计算范围,直到root == null的情况下,不断返回给调用者即可
下面给出本道题目的计算时间和内存消耗情况:(忘记截图) 在力扣官方给出的所有测试用例中速度在500ms左右,内存损耗为50Mb
如果各位同学有更好的思路或者有更好的题目,可在评论区留言分享