力扣104 二叉树的最大深度
题目描述
给定一个二叉树 root
,返回其最大深度。
二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。
示例 1:
输入:root = [3,9,20,null,null,15,7] 输出:3
示例 2:
输入:root = [1,null,2] 输出:2
提示:
- 树中节点的数量在
[0, 104]
区间内。 -100 <= Node.val <= 100
涉及知识点:二叉树、递归
思路分析
基于递归的思想,从根结点开始,找出左右子树的最大值并返回,同时加上1(根节点本身)就是二叉树的最大深度
每一次递归,都要判断该节点的左右子树的最大值,直到递归到最下面的叶子节点,为空返回0,同时每一次返回时,记得加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;
}
return fmax(maxDepth(root->left),maxDepth(root->right))+1;
}