重建二叉树

来源:互联网 发布:淘宝知网查重 编辑:程序博客网 时间:2024/06/03 07:39

重建二叉树

    struct TreeNode* reConstructBinaryTree(vector<int> pre,vector<int> in) {        if(pre.empty()||in.empty()||pre.size()!=in.size())            return NULL;        <strong>TreeNode *root = new TreeNode(pre[0]);//需要申请新的内存空间        int i;        for(i=0;pre[0]!=in[i];i++);        int in_root = i;        vector<int> left_pre;        vector<int> left_in;        vector<int> right_pre;        vector<int> right_in;        int j=1;        for(i=0;i<in_root;){            left_pre.push_back(pre[j++]);            left_in.push_back(in[i++]);        }        i++;        for(;i<in.size();){            right_pre.push_back(pre[j++]);            right_in.push_back(in[i++]);        }        root->left = reConstructBinaryTree(left_pre,left_in);        root->right = reConstructBinaryTree(right_pre,right_in);    return root;    }


0 0
原创粉丝点击