码迷,mamicode.com
首页 > 其他好文 > 详细

【leetcode 106. 从中序与后序遍历序列构造二叉树】解题报告

时间:2019-05-02 23:06:43      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:技术   code   for   nod   inf   src   color   二叉树   节点   

技术图片

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

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

 

【leetcode 106. 从中序与后序遍历序列构造二叉树】解题报告

标签:技术   code   for   nod   inf   src   color   二叉树   节点   

原文地址:https://www.cnblogs.com/brianyi/p/10803545.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!