重建二叉树

简介:

C++

复制代码
/**
 * Definition for binary tree
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
    struct TreeNode* reConstructBinaryTree(vector<int> pre,vector<int> in) {
        if (pre.size() == 0) {
            return NULL;
        }
        TreeNode *root = new TreeNode(pre[0]);
        
        vector<int> l_in, r_in, l_pre, r_pre;
        bool flag = true;
        for (int i = 0; i < pre.size(); i++) {
            if (in[i] == pre[0]) {
                flag = false;
                continue;
            }
            if (flag == true) {
                l_pre.push_back(pre[i+1]);
                l_in.push_back(in[i]);
            } else {
                r_pre.push_back(pre[i]);
                r_in.push_back(in[i]);;
            }
        }
        
        root->left = reConstructBinaryTree(l_pre, l_in);
        root->right = reConstructBinaryTree(r_pre, r_in);
        return root;
    }
};
复制代码

 


本文转自ZH奶酪博客园博客,原文链接:http://www.cnblogs.com/CheeseZH/p/5112653.html,如需转载请自行联系原作者

相关文章
|
3月前
|
人工智能 自然语言处理 小程序
VibeCoding On Function AI Deep Dive:用 AI 应用生产 AI 应用
本文介绍了如何通过自然语言构建AI应用,展示了使用VibeCoding技术实现儿童教育、娱乐及企业网站智能问答等场景的实战案例。无需编程,仅凭对话即可完成开发、发布,体现了AI时代软件开发的变革与创新。
|
XML Java Maven
maven总结三: 常用插件
maven总结三: 常用插件
244 3
|
11月前
|
C语言
【C语言程序设计——函数】亲密数判定(头歌实践教学平台习题)【合集】
本文介绍了通过编程实现打印3000以内的全部亲密数的任务。主要内容包括: 1. **任务描述**:实现函数打印3000以内的全部亲密数。 2. **相关知识**: - 循环控制和跳转语句(for、while循环,break、continue语句)的使用。 - 亲密数的概念及历史背景。 - 判断亲密数的方法:计算数A的因子和存于B,再计算B的因子和存于sum,最后比较sum与A是否相等。 3. **编程要求**:根据提示在指定区域内补充代码。 4. **测试说明**:平台对代码进行测试,预期输出如220和284是一组亲密数。 5. **通关代码**:提供了完整的C语言代码实现
250 24
|
12月前
|
域名解析 负载均衡 安全
DNS技术标准趋势和安全研究
本文探讨了互联网域名基础设施的结构性安全风险,由清华大学段教授团队多年研究总结。文章指出,DNS系统的安全性不仅受代码实现影响,更源于其设计、实现、运营及治理中的固有缺陷。主要风险包括协议设计缺陷(如明文传输)、生态演进隐患(如单点故障增加)和薄弱的信任关系(如威胁情报被操纵)。团队通过多项研究揭示了这些深层次问题,并呼吁构建更加可信的DNS基础设施,以保障全球互联网的安全稳定运行。
|
XML Java 数据格式
Spring IOC—基于XML配置Bean的更多内容和细节(通俗易懂)
Spring 第二节内容补充 关于Bean配置的更多内容和细节 万字详解!
724 18
Spring IOC—基于XML配置Bean的更多内容和细节(通俗易懂)
|
存储 JSON API
如何自定义Python环境变量?
如何自定义Python环境变量?
394 3
|
缓存 搜索推荐 Android开发
安卓开发中的自定义控件基础与进阶
【10月更文挑战第5天】在Android应用开发中,自定义控件是提升用户体验和界面个性化的重要手段。本文将通过浅显易懂的语言和实例,引导你了解自定义控件的基本概念、创建流程以及高级应用技巧,帮助你在开发过程中更好地掌握自定义控件的使用和优化。
261 10
ly~
|
人工智能 搜索推荐 自动驾驶
人工智能的应用
人工智能在多个领域广泛应用,包括:医疗领域的疾病诊断、药物研发和医疗机器人;交通领域的自动驾驶和智能交通管理;金融领域的风险评估、金融诈骗检测和投资决策;教育领域的个性化学习和智能辅导;工业领域的质量检测和生产流程优化;家居领域的智能家居系统,如智能音箱和智能灯具等,极大提升了各行业的效率与服务质量。
ly~
869 1
|
存储 安全 物联网
Web3如何重塑物联网的未来
Web3技术的核心在于去中心化,这意味着数据和操作不再依赖于单一的中心化实体,而是分布式地存储和管理。
224 2
|
弹性计算 运维 Shell
使用 shell 脚本打印图形
【4月更文挑战第29天】
271 1

热门文章

最新文章