题目
给定一个二叉树,找出其最大深度。
二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
说明: 叶子节点是指没有子节点的节点。
示例
给定二叉树 [3,9,20,null,null,15,7],
3
/ \
9 20
/ \
15 7
返回它的最大深度 3 。
想法
该题不是很难,总体上我们使用迭代的方法来求解,一步步深入到最小子树。在最小子树的深度上慢慢的加,但是开始出现了一些问题,虽然代码可以实现,但是结果出现了问题,无论是什么树,返回的深度都为1,后来发现是返回值代码的位置发生了错误,我误将返回值代码放到了循环中。就有了下面的结果.
代码实现
class Solution {
public:
int maxDepth(TreeNode* root)
{
int maxdepth;
int a=0;
if(root==NULL)
{
return 0;
}
else
{
a=max(maxDepth(root->left),maxDepth(root->right));
maxdepth=a+1;
}
return maxdepth;
}
};