重建二叉树

来源:互联网 发布:php file get content 编辑:程序博客网 时间:2024/05/16 01:55


/** * Definition for binary tree * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public:struct TreeNode* reConstructBinaryTree(vector<int> pre,vector<int> in) {        if(pre.size() == 0)            return NULL;        struct TreeNode* root; vector<int> leftPre,leftIn;        vector<int> rightPre,rightIn;        root = new TreeNode(pre[0]);        bool flag = false;        for(int i = 0; i < in.size(); i++){            if(in[i] == pre[0])            flag = 1;        else if(!flag){                leftIn.push_back(in[i]);                leftPre.push_back(pre[i+1]);            }else{                rightIn.push_back(in[i]);                rightPre.push_back(pre[i]);            }        }        root->left = reConstructBinaryTree(leftPre,leftIn);        root->right = reConstructBinaryTree(rightPre,rightIn);        return root;}};


0 0
原创粉丝点击