您的位置:首页 > 职场人生

重建二叉树

2016-05-23 10:33 267 查看
重建二叉树

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  面试