题解 | #从中序与后序遍历序列构造二叉树#

从中序与后序遍历序列构造二叉树

https://www.nowcoder.com/practice/ab8dde7f01f3440fbbb7993d2411a46b

#include <vector>
class Solution {
public:
	//根据101的BM40写出的解法
    TreeNode* buildTree(vector<int>& inorder, vector<int>& postorder) {
        // write code here
	  	// n == m 这样写逻辑比较易懂
        int n = inorder.size();
        int m = postorder.size();

        if(n == 0 || m == 0){
            return nullptr;
        }
        TreeNode* root = new TreeNode(postorder[m-1]);
        for(int i = 0; i < n; i++){
            if(postorder[m-1] == inorder[i]) {
                vector<int> leftin(inorder.begin(), inorder.begin() + i);
                vector<int> leftpost(postorder.begin(), postorder.begin() + i);
                root->left = buildTree(leftin, leftpost);

                vector<int> rightin(inorder.begin()+i+1, inorder.end());
                vector<int> rightpost(postorder.begin() + i, postorder.end() - 1);
                root->right = buildTree(rightin, rightpost);
                break;
            }
        }
        return root;
    }
};

全部评论

相关推荐

鼠鼠第一次实习,啥也不懂一直是自己一个人吃的饭,不会做工作老是被嫌弃,大人的世界是这样的吗?
我是星星我会发亮:好的mt有两种,一种愿意教你的,一种几乎什么活都不给你派让你很闲允许你做自己事情的
实习吐槽大会
点赞 评论 收藏
分享
舂锋:不能投什么岗都用一份简历,一般都是要看企业的岗位需求来写职业技能或者是项目经历,跟岗位相关的就写多一点。
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务