题目简述:
求给定二叉树的最大深度,
最大深度是指树的根结点到最远叶子结点的最长路径上结点的数量。
示例1
输入
{1,2}
输出
2
示例2
输入
{1,2,3,4,#,#,5}
输出
3
解题思路:求二叉树的最大深度,我们可以采用递归的思想,比较左子树和右子树的深度,谁的深度大就取谁。边界就是最后的叶子结点,所以代码如下
/**
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
class Solution {
public:
/**
*
* @param root TreeNode类
* @return int整型
*/
int maxDepth(TreeNode* root) {
// write code here
//递归的思路解题
if(root==NULL)
{
return 0;
}
int leftnum=maxDepth(root->left);
int rightnum=maxDepth(root->right);
if(leftnum>rightnum)
{
return leftnum+1;
}
return rightnum+1;
}
};