Given a binary tree, find its maximum depth.
The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.
初步拿到这个题目求一个二叉树的深度。
一般看见二叉树第一反应是递归思想。既然求的就是树的深度maxDepth()
因此,root->left 的深度为maxDepth(root->left),root->right的深度为maxDepth(root->right)
则,root的深度为 max(left深度,right深度)+1
注意递归的返回条件
/**
* Definition for binary tree
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
int maxDepth(TreeNode *root) {
}
};
解答:
/**
* Definition for binary tree
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
int maxDepth(TreeNode *root) {
if (root==NULL)
{
return 0;
}
else
{
int left=maxDepth(root->left);
int right=maxDepth(root->right);
return max(right,left)+1;
}
}
};