某公司架构以二叉树形式记录,请返回该公司的层级数。

示例 1:

**输入:**root = [1, 2, 2, 3, null, null, 5, 4, null, null, 4]
输出: 4
解释: 上面示例中的二叉树的最大深度是 4,沿着路径 1 -> 2 -> 3 -> 4 或 1 -> 2 -> 5 -> 4 到达叶节点的最长路径上有 4 个节点。

提示:

节点总数 <= 10000

求二叉树的深度,即max(左子树深度,右子树深度)+1

或者直接递归遍历,每次到叶子结点时更新最大深度

1
2
3
4
5
6
7
8
9
class Solution {
public:
int calculateDepth(TreeNode *root) {
if (root == nullptr)
return 0;

return max(calculateDepth(root->left), calculateDepth(root->right)) + 1;
}
};