Hello. There is a tree structure:
struct Tree { int value; Tree* left; Tree* right; Tree(int v) { value = v; left = nullptr; right = nullptr; } Tree() { value = 0; left = nullptr; right = nullptr; } }; There is also a function to add a new node:
bool AddNode(Tree* root, int data) { if(root) { if(data < root->value) { AddNode(root->left, data); } else if(data > root->value) { AddNode(root->right, data); } else { return false; } } else { root = new Tree(data); } return true; } But for some reason there is a memory leak in this line:
root = new Tree(data); Memory release:
void DeleteTree(Tree* root) { if(root) { DeleteTree(root->left); DeleteTree(root->right); delete root; } } Please tell me what's wrong.