您的位置:首页 > 其它

二叉树的最大深度

2017-04-11 17:03 148 查看
1.问题描述:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的距离。

2.思路:正如样例

给出一棵如下的二叉树:

1
/ \
2   3
/ \
4   5

这个二叉树的最大深度为
3


 

利用递归的思想,不断求左右子树的深度,最终最大的那个+1就是给定二叉树的最大深度。

3.代码:

/**
* Definition of TreeNode:
* class TreeNode {
* public:
*     int val;
*     TreeNode *left, *right;
*     TreeNode(int val) {
*         this->val = val;
*         this->left = this->right = NULL;
*     }
* }
*/
class Solution {
public:
/**
* @param root: The root of binary tree.
* @return: An integer
*/
int maxDepth(TreeNode *root) {
// write your code here
if(root==NULL)  return 0;
int l=maxDepth(root->left);
int r=maxDepth(root->right);
int a=max(l,r)+1;
return a;
}
};


 

4.感想:像二叉树的前、中、后序遍历一样,运用了递归的思想,这样大大简便了题目!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: