当前位置: 首页 > article >正文

从中序和前序遍历序列构造二叉树

题目链接

在这里插入图片描述

class Solution {
public:
    unordered_map<int,int> hash;
    TreeNode* build(int rooti,int left,int right,vector<int>& preorder){
        if(left > right)
            return nullptr;
        TreeNode* root = new TreeNode(preorder[rooti]);

        int index = hash[preorder[rooti]];
        root->left = build(rooti+1,left,index-1,preorder);
        root->right = build(rooti+1+index-left,index+1,right,preorder);
        return root;
    }
    TreeNode* buildTree(vector<int>& preorder, vector<int>& inorder) {
        for(int i = 0;i < inorder.size();i++){
            hash[inorder[i]] = i;
        }
        return build(0,0,preorder.size()-1,preorder);
    }
};

http://www.kler.cn/a/9729.html

相关文章:

  • 记录使用documents4j来将word文件转化为pdf文件
  • 机器学习总结
  • qt QProcess详解
  • 软件工程概论项目(二),node.js的配置,npm的使用与vue的安装
  • 边缘计算在智能交通系统中的应用
  • AI 写作(五)核心技术之文本摘要:分类与应用(5/10)
  • 系统集成项目管理工程师软考第一章习题(已完结)
  • JavaScript基础04 - BOM编程
  • 外包干了四年,感觉废了..
  • 浅谈自动化测试用例创建和文档
  • ( “树” 之 DFS) 226. 翻转二叉树 ——【Leetcode每日一题】
  • Linux环境开机自启动
  • Laravel 6.2 表单验证之表单请求验证
  • 如何免费使用ChatGPT 4?
  • postgres创建分区表
  • Java Stream API 操作完全攻略:让你的代码更加出色 (三)
  • 安装cmake
  • 2023年全国最新安全员精选真题及答案48
  • 从零开始学习Java神经网络、自然语言处理和语音识别,附详解和简易版GPT,语音识别完整代码示例解析
  • 食堂总是拥挤不堪?解决用餐拥挤,教你一招
  • stm32当中的EXTI外部中断系统
  • Ubuntu系统配置SonarQube + cppcheck + Jenkins
  • docker使用具体教程,入门方法你懂了吗?
  • NVT | NVT SDK播报语音制作
  • 每日刷题记录(十)
  • 刚入职场的年轻开发人员应该如何提高自己的技能,掌握哪些知识