设计一个函数,计算二叉树的最大深度。用c语言实现
时间: 2024-09-23 10:02:44 浏览: 20
设计一个用于计算二叉树最大深度的函数,可以采用递归的方式。在C语言中,你可以创建一个名为`maxDepth`的函数,接受一个指向二叉树根节点的指针作为输入。以下是简单的C语言实现:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义二叉树节点结构体
typedef struct TreeNode {
int val; // 节点值
struct TreeNode* left; // 左子树指针
struct TreeNode* right; // 右子树指针
} TreeNode;
// 计算二叉树最大深度
int maxDepth(TreeNode* root) {
if (root == NULL) { // 如果根节点为空,返回0
return 0;
} else {
// 递归计算左子树和右子树的最大深度,并取较大者加一
int leftDepth = maxDepth(root->left);
int rightDepth = maxDepth(root->right);
return (leftDepth > rightDepth ? leftDepth : rightDepth) + 1;
}
}
int main() {
// 创建一个示例二叉树,这里省略实际构建部分
TreeNode* tree = ...;
int depth = maxDepth(tree);
printf("二叉树的最大深度为: %d\n", depth);
return 0;
}
```
在这个实现中,`maxDepth`函数会首先检查当前节点是否为空,如果为空则返回0。然后分别递归地计算左子树和右子树的最大深度,最后返回较大的那个加1,即当前节点所在层级。