用C++编写程序,获得二叉树的深度
时间: 2023-06-14 13:06:37 浏览: 104
以下是使用C++编写的获取二叉树深度的程序:
```c++
#include <iostream>
#include <algorithm>
using namespace std;
struct TreeNode {
int value;
TreeNode* left;
TreeNode* right;
TreeNode(int val): value(val), left(nullptr), right(nullptr) {}
};
int getDepth(TreeNode* root) {
if (root == nullptr) {
return 0;
}
int leftDepth = getDepth(root->left);
int rightDepth = getDepth(root->right);
return max(leftDepth, rightDepth) + 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->right = new TreeNode(6);
int depth = getDepth(root);
cout << "The depth of the binary tree is: " << depth << endl;
return 0;
}
```
以上程序中,我们使用了递归的方式来获取二叉树的深度。对于每个节点,我们通过递归调用函数 `getDepth` 来获取其左右子树的深度,然后取其中的较大值并加上1,即可得到该节点所在的子树的深度。最终,根节点的深度即为整个二叉树的深度。
阅读全文