简体   繁体   English

我的代码出现错误。 问题:从前序和中序遍历构造二叉树

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM