LeetCode Hot100 | Day6 | 从前序和中序数组构建二叉树

LeetCode Hot100 | Day6 | 从前序和中序数组构建二叉树

从前序和中序数组构建二叉树

105. 从前序与中序遍历序列构造二叉树 - 力扣(LeetCode)

c++ 复制代码
class Solution {
public:
    TreeNode *tra(vector<int> preorder, vector<int> inorder)
    {
        if(preorder.size()==0)
            return nullptr;
        int val=preorder[0];
        TreeNode* t=new TreeNode (val);
        int index=0;
        for(index=0;index<inorder.size();index++)
            if(val==inorder[index])
                break;
        t->left=tra(vector<int>(preorder.begin()+1,preorder.begin()+1+index),vector<int>(inorder.begin(),inorder.begin()+index));
        t->right=tra(vector<int>(preorder.begin()+1+index,preorder.end()),vector<int>(inorder.begin()+index+1,inorder.end()));
        return t;
    }
    TreeNode* buildTree(vector<int>& preorder, vector<int>& inorder) {
        return tra(preorder,inorder);
    }
};

读者可以参考这篇博客来学习本题解法,思路都一样

代码随想录 | Day25 | 二叉树:从中序与后序遍历构造二叉树&&最大二叉树-CSDN博客

注意点:切割子树的前序和中序区间的时候要注意使用的区间要统一

前闭后开就全都前闭后开

前开后闭就全都前开后闭

相关推荐
想跑步的小弱鸡3 小时前
Leetcode hot 100(day 3)
算法·leetcode·职场和发展
xyliiiiiL5 小时前
ZGC初步了解
java·jvm·算法
爱的叹息5 小时前
RedisTemplate 的 6 个可配置序列化器属性对比
算法·哈希算法
Merokes6 小时前
关于Gstreamer+MPP硬件加速推流问题:视频输入video0被占用
c++·音视频·rk3588
独好紫罗兰6 小时前
洛谷题单2-P5713 【深基3.例5】洛谷团队系统-python-流程图重构
开发语言·python·算法
zhuyixiangyyds6 小时前
day21和day22学习Pandas库
笔记·学习·pandas
每次的天空7 小时前
Android学习总结之算法篇四(字符串)
android·学习·算法
请来次降维打击!!!7 小时前
优选算法系列(5.位运算)
java·前端·c++·算法
qystca7 小时前
蓝桥云客 刷题统计
算法·模拟
别NULL7 小时前
机试题——统计最少媒体包发送源个数
c++·算法·媒体