【LeetCode】105. 从前序与中序遍历序列构造二叉树

作者:小卢

专栏:《Leetcode》

喜欢的话:世间因为少年的挺身而出,而更加瑰丽。 ------《人民日报》


105. 从前序与中序遍历序列构造二叉树

力扣

题目描述:

给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。

示例:

思路:

利用previ去变量前序数组找到根的位置,然后再去中序数组里面找到根,分割左右子树区间

然后begin和end在中序数组去分割左右子树,然后利用递归构建树

代码:

cpp 复制代码
class Solution {
public:
    TreeNode* _buildTree(vector<int>& preorder, vector<int>& inorder,int&previ,int begin,int end) {
        if(begin>end)
        return nullptr;
        TreeNode*root=new TreeNode(preorder[previ]);
        int rooti=0;
        while(preorder[previ]!=inorder[rooti])
        {
            rooti++;
        }
        previ++;
        root->left=_buildTree(preorder,inorder,previ,begin,rooti-1);
        root->right=_buildTree(preorder,inorder,previ,rooti+1,end);
        return root;
}
    TreeNode* buildTree(vector<int>& preorder, vector<int>& inorder) {
        int i=0;
        return _buildTree(preorder,inorder,i,0,inorder.size()-1);
    }

};
相关推荐
RisunJan1 分钟前
Android 面试知识点整理
android·面试·职场和发展
一条大祥脚2 分钟前
26杭电暑期第八场(后半)快读|快写|tarjan|路径DP|mex转化|扫描线|前缀和|二分图
数据结构·算法·tarjan·杭电多校·强联通分量·动态规划dp
奈斯先生Vector5 分钟前
从“能调用”到“可运营”:AI Agent 进入多模型时代后的架构升级
java·javascript·数据库·人工智能·算法·架构·aigc
2601_9561219717 分钟前
Bellman-ford算法
算法
叠层归一研究院23 分钟前
基于区分本源的此刻存在唯一性本体论推演
人工智能·算法
luj_176824 分钟前
尾椎藏今生记忆?骨盆对应不确定性
开发语言·网络·c++·经验分享·算法
深圳多奥智能一卡(码、脸)通系统26 分钟前
智能梯控SDK可直接用于第三方开发对接的接口文档说明书
服务器·前端·算法
RisunJan30 分钟前
uni-app 面试知识点梳理
面试·职场和发展·uni-app
裕晟资质规划10 小时前
武器装备科研生产单位保密资质申请方法论:条件模型与流程拆解
人工智能·算法