leetcode 105. 从前序与中序遍历序列构造二叉树解题报告

Posted brianyi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode 105. 从前序与中序遍历序列构造二叉树解题报告相关的知识,希望对你有一定的参考价值。

技术图片

前往 中序,后序遍历构造二叉树中序,前序遍历构造二叉树

    TreeNode* build(vector<int>& preorder, int l1, int r1, vector<int>& inorder, int l2, int r2)
    {
        if (l1>r1) return nullptr;
        int x=preorder[l1], i=0;    // 确定当前根节点
        for(i=l2;inorder[i]!=x&&i<r2;++i);  // 在中序遍历序列中找到当前根节点位置(该位置可以划分出左右两个分支)
        int llen=i-l2;  // 左子树结点数量
        int rlen=r2-i;  // 右子树结点数量
        TreeNode *p = new TreeNode(x);  // 建立根节点
        p->left = build(preorder, l1+1, l1+llen, inorder, l2, l2+llen-1);   // 递归建立左子树,+1,-1是把当前根节点位置去掉
        p->right= build(preorder, r1-rlen+1, r1, inorder, r2-rlen+1, r2);   // 递归建立右子树,+1,+1是把当前根节点位置去掉
        return p;
    }
    TreeNode* buildTree(vector<int>& preorder, vector<int>& inorder) {
        return build(preorder, 0, preorder.size()-1, inorder, 0, inorder.size()-1);
    }

 

以上是关于leetcode 105. 从前序与中序遍历序列构造二叉树解题报告的主要内容,如果未能解决你的问题,请参考以下文章

leetcode-105,106 从前序与中序遍历序列构造二叉树,从中序与后序遍历序列构造二叉树

LeetCode第105题—从前序与中序遍历序列构造二叉树—Python实现

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

[JavaScript 刷题] 树 - 从前序与中序遍历序列构造二叉树, leetcode 105

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

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