二叉树叶子深度代码C语言
时间: 2024-12-19 10:26:46 浏览: 6
叶子结点数及深度(C语言)
5星 · 资源好评率100%
在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) return 0; // 如果为空,返回0表示空树的深度
else {
int leftDepth = maxDepth(root->left); // 计算左子树的深度
int rightDepth = maxDepth(root->right); // 计算右子树的深度
return (leftDepth > rightDepth) ? leftDepth + 1 : rightDepth + 1; // 返回两子树最大深度加1(根节点)
}
}
int main() {
// 创建并初始化示例二叉树
TreeNode* root = ...; // 根据实际情况填充
int depth = maxDepth(root);
printf("The maximum leaf depth of the binary tree is %d\n", depth);
return 0;
}
```
上述代码定义了一个`maxDepth`函数,它会递归地检查当前节点及其子节点的深度,并返回最大深度。在`main`函数里,创建了二叉树的实例后,调用`maxDepth`获取叶子深度。
阅读全文