C语言笔试题之求出二叉树的最大深度(递归解决)
实例要求:
- 1、给定一个
二叉树 root
,返回其最大深度; - 2、二叉树的
最大深度
是指从根节点到最远叶子节点
的最长路径上的节点数
;
案例展示:
实例分析:
- 1、判断根节点是否为空;
- 2、分别递归处理左右子树;
- 3、每递归一次,自动计数一次,直到遍历二叉树完成;
示例代码:
/**
* 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);
int Depth = leftDepth > rightDepth ? leftDepth : rightDepth;
Depth++;
return Depth;
}
运行结果: