C++写程序,获得二叉树的深度
时间: 2024-02-04 16:17:33 浏览: 53
求二叉树的深度
好的,下面是C++实现获取二叉树深度的程序:
```c++
#include <iostream>
#include <algorithm>
using namespace std;
// 二叉树节点结构体
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
};
// 递归函数,获取以root为根节点的二叉树深度
int getDepth(TreeNode* root) {
if (root == nullptr) {
return 0; // 空树深度为0
}
int leftDepth = getDepth(root->left); // 获取左子树深度
int rightDepth = getDepth(root->right); // 获取右子树深度
return max(leftDepth, rightDepth) + 1; // 当前节点深度为左右子树深度的最大值加1
}
int main() {
// 构建一个二叉树
TreeNode* root = new TreeNode(1);
root->left = new TreeNode(2);
root->right = new TreeNode(3);
root->left->left = new TreeNode(4);
root->left->right = new TreeNode(5);
root->right->left = new TreeNode(6);
root->right->right = new TreeNode(7);
int depth = getDepth(root);
cout << "The depth of the binary tree is: " << depth << endl;
return 0;
}
```
输出结果为:
```
The depth of the binary tree is: 3
```
其中,getDepth函数采用了递归的方式,如果当前节点为空,返回0;否则获取左子树和右子树的深度,然后返回左右子树深度的最大值加1,表示当前节点的深度。而在主函数中,我们构建了一个测试用的二叉树,并调用getDepth函数获取二叉树的深度。
阅读全文