题目描述:
样例
给定一个二叉树,找出其最大深度。
二叉树的深度为根节点到最远叶子节点的距离。
给出一棵如下的二叉树:
1
/ \
2 3
/ \
4 5
这个二叉树的最大深度为3
.
解题思路:
先判断根节点是否为空,根节点为空,返回二叉树的最大深度为0;根节点不为空,比较左子树和右子树的最大深度,返回深度大的子树,再加上1
代码实现:
int maxDepth(TreeNode *root) {
// write your code here
if(root==NULL)
return 0;
int leftDepth=maxDepth(root->left);
int rightDepth=maxDepth(root->right);
return leftDepth>rightDepth?(leftDepth+1):(rightDepth+1);
}
感想:判断二叉树的最大深度,就是比较二叉树的左子树和右子树的最大深度,比较出最大深度后,加上根节点1,所得结果就是最大深度。