通过的代码:
int maxDepth(struct TreeNode* root)
{
if(root==NULL)
{
return 0;
}
else
{
int l_deep=maxDepth(root->left);
int r_deep=maxDepth(root->right);
return (l_deep>r_deep?l_deep:r_deep)+1;
}
}
通过结果:
我发现,还是得处理好在底层的情况。如何从底层返回。
这个是我之前写的一个错误的版本:
int deep=0;
if(root!=NULL)
{
int l_deep=maxDepth(root->left);
int r_deep=maxDepth(root->right);
deep=l_deep>r_deep?l_deep:r_deep;
}
else
{
return ++deep;
}
return deep;
我发现我就没怎么理解里面的过程。
自己调试一下,体会一下疯狂return时的场景。