编写函数,求二叉树深度用C语言
时间: 2024-10-25 20:16:41 浏览: 22
C语言编写二叉树的代码
在C语言中,可以编写一个递归函数来计算二叉树的深度。这里是一个简单的例子,假设我们有一个结构体`TreeNode`表示二叉树节点,包含`value`数据和指向左右孩子的指针:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义二叉树节点结构体
typedef struct TreeNode {
int value;
struct TreeNode* left;
struct TreeNode* right;
} TreeNode;
// 函数声明用于计算二叉树深度
int maxDepth(TreeNode* root);
// 计算最大深度的辅助递归函数
int depthHelper(TreeNode* node, int currentDepth) {
// 如果当前节点为空,返回当前层深
if (!node) return currentDepth;
// 否则,递归地计算左子树和右子树的最大深度,并返回较大值加一
int leftDepth = depthHelper(node->left, currentDepth + 1);
int rightDepth = depthHelper(node->right, currentDepth + 1);
// 返回整个树的最大深度
return (leftDepth > rightDepth) ? leftDepth : rightDepth;
}
// 主函数,输入根节点并打印最大深度
int main() {
// 初始化你的二叉树...
TreeNode* root = ...;
int treeDepth = maxDepth(root);
printf("The maximum depth of the binary tree is %d\n", treeDepth);
return 0;
}
```
在这个代码中,`maxDepth`函数通过调用`depthHelper`递归地遍历整棵树,直到遇到空节点,然后返回当前深度。
阅读全文