题目描述:
给定一个二叉树,找出其最大深度。
二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
说明: 叶子节点是指没有子节点的节点。
- 递归法
遍历每一个子树,判断不同子树最大的深度,不断加在总子树的深度上,最后加在一起。
/**
* 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; //若子节点为空直接返回后续的节点数为0
int hleft=maxDepth(root->left);
int hright=maxDepth(root->right);
return hleft>hright?hleft+1:hright+1;
//判断最大值并且加上当前节点的值
}