在C++中寻找二叉树的最大高度路径可以通过递归的方式实现。下面是一个示例代码:
#include <iostream>
#include <algorithm>
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
};
int findMaxHeight(TreeNode* root) {
if (root == nullptr) {
return 0;
}
int leftHeight = findMaxHeight(root->left);
int rightHeight = findMaxHeight(root->right);
return std::max(leftHeight, rightHeight) + 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);
int maxHeight = findMaxHeight(root);
std::cout << "The maximum height of the binary tree is: " << maxHeight << std::endl;
// 释放内存
delete root->left->left;
delete root->left->right;
delete root->left;
delete root->right;
delete root;
return 0;
}
这段代码中,我们定义了一个TreeNode
结构体表示二叉树的节点,其中包含一个整数值val
,以及左右子节点的指针left
和right
。findMaxHeight
函数使用递归的方式计算二叉树的最大高度。如果当前节点为空,返回0;否则,分别计算左子树和右子树的最大高度,并取较大值加1作为当前节点的高度。最后,在main
函数中构建一个二叉树,并调用findMaxHeight
函数计算最大高度。
这个问题中没有明确要求推荐腾讯云相关产品,因此不提供相关链接。
领取专属 10元无门槛券
手把手带您无忧上云