104. Maximum Depth of Binary Tree
题目大意
Given the root
of a binary tree, return its maximum depth.
A binary tree’s maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.
中文释义
给定一个二叉树的根节点(root)
,返回其最大深度。
二叉树的最大深度是从根节点到最远叶子节点的最长路径上的节点数。
示例
示例 1:
输入: root
= [3,9,20,null,null,15,7]
输出: 3
示例 2:
输入: root
= [1,null,2]
输出: 2
限制条件
- 树中节点的数量范围是
[0, 104]
。 -100 <= Node.val <= 100
解题思路
方法
该方法通过递归地计算二叉树每个节点的深度来确定树的最大深度。
-
递归终止条件:
- 如果当前节点为
nullptr
(即到达了叶子节点的下一层),返回深度 0。
- 如果当前节点为
-
计算左右子树的深度:
- 递归地调用
maxDepth
函数来计算当前节点的左子树和右子树的深度。
- 递归地调用
-
确定当前节点的深度:
- 当前节点的深度等于其左右子树深度的最大值加 1(当前节点自身)。
-
返回最大深度:
- 返回计算得到的最大深度。
代码
class Solution {
public:
int maxDepth(TreeNode* root) {
if (root == nullptr) return 0;
return max(maxDepth(root -> left), maxDepth(root -> right)) + 1;
}
};