- 求二叉树的最大深度,并非一定要在递归函数里执行一个计数变量,如果递归函数不返回值,则需要计数,本题中递归函数本身就返回的是子树的深度。而求解是从递归尽头子树深度为0,自身深度为1,反过来逐层推出起始的深度的。
- 最大深度是子树深度+1,不要直接返回子树深度。易错点。
class Solution {
public:
/**
*
* @param root TreeNode类
* @return int整型
*/
//int sum=0;
int maxDepth(TreeNode* root) {
// write code here
if(root==NULL){
return 0;
}
/*
if(root->left==NULL&&root->right==NULL){
return sum;
}
else{
sum+=1;
}
*/
int res1=maxDepth(root->left);
int res2=maxDepth(root->right);
return max(res1,res2)+1;
}
};