.[算法题]二叉树的最大深度- 非常简单但要会

106 阅读2分钟

这道题答案非常简单,但我查看了我当时做题记录发现竟然不会的,那还怎么好意思说自己掌握了递归所以必须记录下的!

做题记录如下:

  • 2022年6月23日21:55:03 许久回来看,要狠狠地一起看完然后总结了!
    • 2022年6月23日21:59:41 现在看忽然有点难以拿出思路了!
    • 2022年6月23日22:04:11 我靠,真的不会了。用递归可以,如何用?
    • 2022年6月23日22:08:18 本以为想了10min还不会直接GG吧,刚准备放弃在最后一刻明白了,就是递归也只能递归,且这个递归的本质不是回退然后再做什么事,那就不是递归而是迭代了。所以这题递归就是左节点找最大深度,在右节点找,比较哪个大取哪个!

下面记录下题目+答案,之后每次翻看即可。不可万万不可再出现这种实际非常简单的题目我10分钟都没思路的情况了!

题目

二叉树的最大深度(力扣104)

来源:力扣(LeetCode)

Link:leetcode-cn.com/problems/ma…`

难度 简单

给定一个二叉树,找出其最大深度。

二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。

说明: 叶子节点是指没有子节点的节点。

Example 1:

img

Input: root = [3,9,20,null,null,15,7]
Output: 3

Example 2:

Input: root = [1,null,2]
Output: 2

Constraints:

  • The number of nodes in the tree is in the range [0, 10000].
  • -100 <= Node.val <= 100

题解

官方题解也是这个,我也做出来了,就简单递归即可啊! 递归真是yyds!

如代码, root节点的深度等于左子树与右子树的最大深度 + 1

    public int maxDepth(TreeNode root) {
        return root == null ? 0 : 1 + Math.max(maxDepth(root.left), maxDepth(root.right));
    }

注意: 二叉树的最小深度 这题则没有这么简单了。之后也记录下!