题目
计算二叉树的深度
某公司架构以二叉树形式记录,请返回该公司的层级数。
- 示例 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
思考
- 对二叉树进行分解,可得:从一个根出发,其最大深度为根的子树中深度最大的那个子树的深度+1
- 然后对子树深度进行分析,可得深度计算是递归思想
- 当越过叶子节点时返回,从下至上,每次将左右子树中最大的深度返回并加上1,然后返回到上一层
class Solution {
public:
int calculateDepth(TreeNode* root) {
if(!root) return 0;
return max(calculateDepth(root->left), calculateDepth(root->right))+1;
}
};