题解:#重组二叉树#

题目链接:https://www.nowcoder.com/share/jump/5876869471694399526239

/**
 * struct TreeNode {
 *	int val;
 *	struct TreeNode *left;
 *	struct TreeNode *right;
 *	TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 * };
 */
#include <vector>
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param preOrder int整型vector 
     * @param vinOrder int整型vector 
     * @return TreeNode类
     */
    TreeNode* reConstructBinaryTree(vector<int>& preOrder, vector<int>& vinOrder) {
        // write code here
        if(preOrder.size()==0||vinOrder.size()==0)
        {
            return nullptr;
        }

        int rootval = preOrder[0];
        TreeNode* root = new TreeNode(rootval);

        int index=0;
        for(;index<vinOrder.size();index++)
        {
            if(vinOrder[index]==rootval)
            {
                break;
            }
        }

        vector<int> vinOrderLeft(vinOrder.begin(),vinOrder.begin()+index);
        vector<int> vinOrderRight(vinOrder.begin()+index+1,vinOrder.end());

        vector<int> preOrderLeft(preOrder.begin()+1,preOrder.begin()+1+index);
        vector<int> preOrderRight(preOrder.begin()+index+1,preOrder.end());


        //递归
        root->left=reConstructBinaryTree(preOrderLeft, vinOrderLeft);
        root->right=reConstructBinaryTree(preOrderRight, vinOrderRight);

        return root;
    }
};

#剑指offer#
剑指offer刷题 文章被收录于专栏

坚持!努力!学习

全部评论

相关推荐

想申请延毕了,找工作找到崩溃,越找就越想摆烂,还有25届的和我一样感受吗?
码农索隆:没事哒,好兄弟,慢慢来,调整心态,车到山前必有路,感到迷茫的时候,多抬头看看
点赞 评论 收藏
分享
点赞 评论 收藏
分享
吴offer选手:学到了,下次面试也放张纸在电脑上,不然老是忘记要说哪几个点
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务