第二道题希望详细的内容,我不太懂,如果能运行直接结题,看看我的通过率,希望各位能快点
7条回答 默认 最新
- 开发技术控 2023-12-26 14:38关注
来 给你
#include <iostream> #include <vector> struct TreeNode { int val; TreeNode* left; TreeNode* right; TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} }; TreeNode* buildTree(std::vector<int>& inorder, std::vector<int>& postorder, int inStart, int inEnd, int postStart, int postEnd) { if (inStart > inEnd || postStart > postEnd) { return nullptr; } int rootVal = postorder[postEnd]; TreeNode* root = new TreeNode(rootVal); int rootIndex = 0; for (int i = inStart; i <= inEnd; ++i) { if (inorder[i] == rootVal) { rootIndex = i; break; } } int leftSubtreeSize = rootIndex - inStart; root->left = buildTree(inorder, postorder, inStart, rootIndex - 1, postStart, postStart + leftSubtreeSize - 1); root->right = buildTree(inorder, postorder, rootIndex + 1, inEnd, postStart + leftSubtreeSize, postEnd - 1); return root; } void postorderTraversal(TreeNode* root) { if (root == nullptr) { return; } postorderTraversal(root->left); postorderTraversal(root->right); std::cout << root->val << " "; } void inorderTraversal(TreeNode* root) { if (root == nullptr) { return; } inorderTraversal(root->left); std::cout << root->val << " "; inorderTraversal(root->right); } int main() { std::vector<int> inorder = {4, 2, 8, 5, 1, 6, 9, 3, 7}; std::vector<int> postorder = {4, 8, 5, 2, 9, 6, 7, 3, 1}; int n = inorder.size(); TreeNode* root = buildTree(inorder, postorder, 0, n - 1, 0, n - 1); std::cout << "后序遍历结果:"; postorderTraversal(root); std::cout << std::endl; std::cout << "中序遍历结果:"; inorderTraversal(root); std::cout << std::endl; return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 编辑cmake lists 明明写了project项目名,但是还是报错怎么回事
- ¥15 关于#计算机视觉#的问题:求一份高质量桥梁多病害数据集
- ¥15 特定网页无法访问,已排除网页问题
- ¥50 如何将脑的图像投影到颅骨上
- ¥15 提问一个关于vscode相关的环境配置问题,就是输入中文但是显示不出来,代码在idea可以显示中文,但在vscode不行,不知道怎么配置环境
- ¥15 netcore使用PuppeteerSharp截图
- ¥20 这张图页头,页脚具体代码该怎么写?
- ¥15 关于#sql#的问题,请各位专家解答!
- ¥20 WPF MVVM模式 handycontrol 框架, hc:SearchBar 控件 Text="{Binding NavMenusKeyWords}" 绑定取不到值
- ¥15 需要手写数字信号处理Dsp三个简单题 不用太复杂