二叉树的先序遍历递归算法计算二叉树的高度的代码C++
时间: 2024-11-28 07:14:26 浏览: 5
二叉树先序遍历、中序遍历和后序遍历非递归算法 C++源码
4星 · 用户满意度95%
在C++中,我们可以使用递归的方式计算二叉树的高度。首先,我们需要定义一个节点结构体(TreeNode),然后实现一个辅助函数来计算高度,以及一个主函数来进行先序遍历。
```cpp
// 定义二叉树节点
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
// 辅助函数:计算单个节点的高度
int heightRec(TreeNode* node) {
if (node == nullptr) return 0; // 空节点高度为0
return 1 + std::max(heightRec(node->left), heightRec(node->right));
}
// 先序遍历并计算高度的主函数
int calculateHeight(TreeNode* root) {
return heightRec(root);
}
```
这个`calculateHeight`函数接收二叉树的根节点作为输入,通过递归调用`heightRec`,每个节点都会返回它到最左下叶节点的最大距离加一(即高度)。如果节点为空,则认为高度为0。
阅读全文