题目描述及链接
题解
二叉树的深度都是用递归计算,可以用返回值,也可以用参数带回。
这里写返回值的方法。
思想:二叉树深度=左子树深度与右子树深度较大者+1
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
int maxDepth(struct TreeNode* root){
if(root == NULL)
return 0;
int leftDepth = maxDepth(root->left);
int rightDepth = maxDepth(root->right);
return leftDepth > rightDepth ? leftDepth+1 : rightDepth+1;
}
总结
要注意递归的返回值是逐层返回的。注意这里遇到空返回0的作用,不仅仅是空树深度为0,也可能是子树中遇到NULL。