输入中序遍历,前序遍历,输出树的高度c加加
时间: 2024-11-20 19:43:19 浏览: 12
输入中序遍历、前序遍历以及计算二叉树高度是二叉树操作的三个常见概念。
1. **中序遍历**:从根节点开始,先访问左子树,然后访问根节点,最后访问右子树。对于给定的序列,它可以帮助重构出原始二叉树的结构。
2. **前序遍历**:同样从根节点开始,首先访问根节点,接着遍历左子树,最后遍历右子树。这种顺序常用于创建复制一棵树。
3. **计算树的高度**(C++中的`height()`函数):通常通过递归的方式实现,从当前节点开始,如果该节点为空,则返回0;否则,返回左右子树高度的最大值加1。这是为了确定从根节点到最远叶子节点的最长路径。
如果你想要编写C++代码来实现这三者,可以参考以下伪代码示例:
```cpp
// 定义二叉树节点
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
};
// 中序遍历
void inorderTraversal(TreeNode* root, vector<int>& res) {
if (root) {
inorderTraversal(root->left, res);
res.push_back(root->val);
inorderTraversal(root->right, res);
}
}
// 前序遍历
void preorderTraversal(TreeNode* root, vector<int>& res) {
if (root) {
res.push_back(root->val);
preorderTraversal(root->left, res);
preorderTraversal(root->right, res);
}
}
// 计算树的高度
int height(TreeNode* root) {
if (!root) return 0;
int leftHeight = height(root->left);
int rightHeight = height(root->right);
return max(leftHeight, rightHeight) + 1;
}
```
阅读全文