c语言编写求二叉树高度带算法
时间: 2025-01-30 22:03:18 浏览: 43
在C语言中,求解二叉树的高度通常采用递归的方式。二叉树的高度是指从根节点到最远叶子节点的最长路径上边的数量。下面是一个简单的算法:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义二叉树结点结构体
typedef struct TreeNode {
int val;
struct TreeNode* left;
struct TreeNode* right;
} TreeNode;
// 计算二叉树高度的辅助函数
int heightHelper(TreeNode* root) {
// 如果树为空,则高度为0
if (root == NULL) {
return 0;
}
// 否则,分别计算左子树和右子树的高度,然后取较大值加1作为当前节点的高度
int leftHeight = heightHelper(root->left);
int rightHeight = heightHelper(root->right);
// 返回较大的高度
return (leftHeight > rightHeight ? leftHeight : rightHeight) + 1;
}
// 主函数示例
int main() {
// 创建并初始化二叉树...
TreeNode* root = ...; // 根据实际的二叉树构建
// 调用辅助函数求解高度
int treeHeight = heightHelper(root);
printf("The height of the binary tree is: %d\n", treeHeight);
// 清理内存
free(root); // 如果动态分配了内存,记得释放
return 0;
}
```
在这个例子中,`heightHelper` 函数递归地检查每个节点,如果节点为空(即到达叶子节点),返回0;否则,继续对左右子树递归调用,最终返回最大子树高度加上1。
阅读全文
相关推荐


















