c++编写一个程序,实现二叉树高度的求取。利用二叉树的性质及二叉树前序遍历的思想,计算二叉树的高度
时间: 2023-11-14 18:21:26 浏览: 87
以下是C++程序实现二叉树高度的求取:
```c++
#include <iostream>
using namespace std;
struct TreeNode{
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
int maxDepth(TreeNode* root) {
if(!root) return 0;
int left_height = maxDepth(root->left);
int right_height = maxDepth(root->right);
return max(left_height, right_height) + 1;
}
int main() {
/* 构造二叉树
3
/ \
9 20
/ \
15 7
*/
TreeNode *root = new TreeNode(3);
root->left = new TreeNode(9);
root->right = new TreeNode(20);
root->right->left = new TreeNode(15);
root->right->right = new TreeNode(7);
cout << "二叉树高度为:" << maxDepth(root) << endl;
return 0;
}
```
程序首先定义了二叉树的节点结构体`TreeNode`,包含节点的值,左子树和右子树。接着定义了`maxDepth`函数,该函数使用递归的方法计算二叉树的高度。若当前节点为`NULL`,则返回0;否则继续递归计算左子树和右子树的高度,取两者的最大值并加1,即为当前子树的高度。最后,程序使用构造函数构造了一个二叉树,并输出了其高度。
阅读全文