求二叉树高度 c语言函数
时间: 2024-11-23 22:02:24 浏览: 40
在C语言中,计算二叉树的高度通常通过递归的方式来实现。二叉树的高度是从根节点到最远叶子节点的最大路径长度。这里有一个简单的函数示例:
```c
#include <stdio.h>
#include <limits.h>
// 定义二叉树结点结构
typedef struct TreeNode {
int val;
struct TreeNode* left;
struct TreeNode* right;
} TreeNode;
// 计算二叉树高度的函数
int maxDepth(TreeNode* root) {
// 如果树为空,返回0
if (root == NULL) {
return 0;
}
// 分别计算左子树和右子树的高度,取较大者加一作为当前层的高度
int leftHeight = maxDepth(root->left);
int rightHeight = maxDepth(root->right);
// 返回当前层的高度,即较大的那个加上1
return (leftHeight > rightHeight ? leftHeight : rightHeight) + 1;
}
int main() {
// 创建一个二叉树实例并初始化
TreeNode* tree = /* 初始化二叉树... */;
// 调用函数计算高度
int height = maxDepth(tree);
printf("The height of the binary tree is %d.\n", height);
return 0;
}
```
在这个`maxDepth`函数中,如果遇到空节点(NULL),就返回0;否则,分别递归地计算左右子树的高度,并返回两者的最大值加1。这就是二叉树高度的基本求解思路。
阅读全文