用CPP实现统计二叉树的高度
时间: 2024-11-25 07:19:44 浏览: 3
在C++中,统计二叉树的高度可以使用递归的方式实现。二叉树的高度是根节点到最远叶子节点的最大路径长度。下面是一个简单的示例,我们定义一个二叉树节点结构体`TreeNode`,然后提供一个函数`height`计算高度:
```cpp
#include <iostream>
// 定义二叉树节点
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
};
// 计算二叉树的高度
int height(TreeNode* root) {
// 基本情况:空树或只有一个节点的树高度为0
if (!root) return 0;
// 对非空二叉树,左右子树的高度分别加1,取较大值
int left_height = height(root->left);
int right_height = height(root->right);
// 返回较大的高度 + 1(加上当前节点)
return std::max(left_height, right_height) + 1;
}
int main() {
// 创建一个示例二叉树并求其高度
TreeNode* tree = new TreeNode(5); // 根节点
tree->left = new TreeNode(3); // 左子树
tree->right = new TreeNode(8); // 右子树
tree->left->left = new TreeNode(2); // 左子树的左子树
int result = height(tree);
std::cout << "The height of the binary tree is: " << result << std::endl;
delete tree; // 别忘了释放内存
return 0;
}
```
当你运行这个程序时,它会输出给定二叉树的高度。
阅读全文