C++ method

重建二叉树

http://www.nowcoder.com/questionTerminal/8a19cbe657394eeaac2f6ea9b0f6fcf6

TreeNode* reConstructBinaryTree(vector<int> pre,vector<int> vin) {
        int n=pre.size();
        return helper(pre,0,n,vin,0,n);

    }
    TreeNode* helper(vector<int>& pre,int prestart,int preend,vector<int>& vin,int vinstart,int vinend)
    {
        if(prestart>=preend or vinstart>=vinend)
            return nullptr;
        int mid=pre[prestart];
        int dis=find(vin.begin()+vinstart,vin.begin()+vinend,mid)-(vin.begin()+vinstart);
        TreeNode* root=new TreeNode(mid);
        root->left=helper(pre,prestart+1,prestart+dis+1,vin,vinstart,vinstart+dis);
        root->right=helper(pre,prestart+dis+1,preend,vin,vinstart+dis+1,vinend);
        return root;
    }
全部评论

相关推荐

02-15 22:29
门头沟学院 Java
点赞 评论 收藏
分享
黑皮白袜臭脚体育生:简历统一按使用了什么技术实现了什么功能解决了什么问题或提升了什么性能指标来写会更好另外宣传下自己的开源仿b站微服务项目,GitHub已经410star,牛客上有完整文档教程,如果觉得有帮助的话可以点个小星星,蟹蟹
点赞 评论 收藏
分享
昨天 00:16
已编辑
湖北大学 Java
Java抽象带篮子:java简历怎么写可以看看我发的帖子,很详细的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务