[英]I am getting an error in my code. Problem:Construct Binary Tree from Preorder and Inorder Traversal
Given preorder and inorder traversal of a tree, construct the binary tree.给定树的前序和中序遍历,构造二叉树。 For Example: preorder = [3,9,20,15,7] inorder = [9,3,15,20,7]
例如: preorder = [3,9,20,15,7] inorder = [9,3,15,20,7]
Return the binary tree.返回二叉树。
My code is given below:我的代码如下:
//helper function
TreeNode* build(vector<int> &preorder, vector<int> &inorder, int start, int end)
{
static int index = 0;
if(start>end)
return NULL;
TreeNode *root = new TreeNode(preorder[index++]); //new node creation
if(start == end) // if no element left, then return
return root;
int preindex = binary_search(inorder.begin(),inorder.end(),root->val); //find the position of root for new iteration
root->left = build(preorder,inorder,start,preindex-1); // recur for left
root->right = build(preorder,inorder,preindex+1,end); // recur for right
return root; // return root
}
TreeNode* buildTree(vector<int>& preorder, vector<int>& inorder) {
int start=0;
int end=preorder.size()-1;
return build(preorder,inorder,start,end); // call for helper function
}
The above code is showing error saying =ERROR: AddressSanitizer: heap-buffer-overflow on address 0x603000000030 at pc 0x000000382d77 bp 0x7ffc26698900 sp 0x7ffc266988f8上面的代码显示的错误是 =ERROR: AddressSanitizer: heap-buffer-overflow on address 0x603000000030 at pc 0x000000382d77 bp 0x7ffc26698900 sp 0x7ffc266988f8
Please help me guys.请帮帮我。 Thanks in advance.
提前致谢。
二分搜索仅适用于已排序的对象,并且似乎没有对中序向量进行排序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.