基于二叉链表的二叉树高度的计算c语言
时间: 2024-12-28 16:36:21 浏览: 2
基于二叉链表的二叉树高度计算通常采用递归或迭代的方式来完成。以下是使用C语言的一个简单递归方法:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义二叉树节点结构体
typedef struct Node {
int data;
struct Node* left;
struct Node* right;
} Node;
// 计算二叉树的高度函数
int maxDepth(Node* root) {
// 如果根节点为空,返回0表示空树高度为0
if (root == NULL)
return 0;
// 递归地计算左子树和右子树的最大深度
int leftHeight = maxDepth(root->left);
int rightHeight = maxDepth(root->right);
// 返回两子树较大高度加1,即当前结点所在层的高度
return (leftHeight > rightHeight ? leftHeight + 1 : rightHeight + 1);
}
int main() {
// 创建示例二叉树并初始化...
Node* root = createTree(); // 你需要定义createTree函数来创建二叉树
// 调用maxDepth函数计算树的高度
int height = maxDepth(root);
printf("二叉树的高度为: %d\n", height);
free(root); // 不忘记释放内存
return 0;
}
```
阅读全文