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

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

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;
    }
};

全部评论

相关推荐

最近和朋友聊天,她说了句让我震惊的话:"我发现我连周末点外卖都开始'最优解'了,一定要赶在高峰期前下单,不然就觉得自己亏了。"这不就是典型的"班味入侵"吗?工作思维已经渗透到生活的方方面面。
小型域名服务器:啊?我一直都这样啊?我还以为是我爱贪小便宜呢?每次去实验室都得接一杯免费的开水回去,出门都得规划一下最短路径,在宿舍就吃南边的食堂,在实验室就吃北边的食堂,快递只有顺路的时候才取。
点赞 评论 收藏
分享
头像
10-09 19:35
门头沟学院 Java
洛必不可达:java的竞争激烈程度是其他任何岗位的10到20倍
点赞 评论 收藏
分享
勤劳的香菇求被捞求offer:满帮笔试都不给我发 似乎被卡本了
投递满帮集团等公司10个岗位
点赞 评论 收藏
分享
点赞 1 评论
分享
牛客网
牛客企业服务