当前位置: 首页 > 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/news/9729.html

相关文章:

  • 系统集成项目管理工程师软考第一章习题(已完结)
  • 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播报语音制作
  • 每日刷题记录(十)
  • 刚入职场的年轻开发人员应该如何提高自己的技能,掌握哪些知识
  • LOTO示波器电源环路增益分析客户实测
  • Kotlin语法-Day10
  • EndNote X9 插入参考文献方法 及论文参考文献常见问题总结
  • idea无maven选项
  • 佳明手表APP开发系列01——简单汉化英文版
  • synchronized的简单理解
  • QT样式表详解
  • ChatGPT原理剖析
  • 云HIS源码:云HIS系统操作指南
  • 【数据结构】栈和队列(笔记总结)