指定されたBSTを複製しようとしています
私がこれを取得しているとしましょう:
2
/ \
1 3
私がやろうとしていることはこれです:
2 / \ 2 3 / / 1 3 / 1
void bTree::mulTree(tNode *tree)
{
if (!tree)
return;
if (tree->left)
tree->left->left = insert(tree->left->value);
else
tree->left = insert(tree->value);
mulTree(tree->left->left);
if (tree->value != tree->left->value)
{
tree->left->value = tree->value;
mulTree(tree->right);
}
}
このコードでは、本来あるべき左側を取得してい
ますが、右側を変更しようとするとヒープエラーが発生します
"//mulTree(tree->right);"
これを実行すると、次のようになります。
"HEAP: Free Heap block ... after it was freed"
しかし、すでに解放されている場所がわかりません... =\
この間にエラーが発生します:
tree->left = insert(tree->value);
コードを挿入:
tNode* bTree::insert(int value)
{
tNode *temp = new tNode();
temp->value = value;
return temp;
}