Я пытаюсь построить левое дочернее дерево справа, но в моем коде есть ошибка.
Ошибка возникает, когда я собираюсь удалить «последний элемент» из моего дерева.В основном примере этого небольшого проекта , если я «сотру» число 9 и напечатаю print () после этого, тогда будет показано число 0 вместо 9, но ни один не должен быть показан.
void remove(T value){
auto *node = this->search_node(value);
if(node == NULL){
std::cout << std::endl << "The value is not in the tree" << std::endl;
} else if(node == this->root) {
this->root = NULL;
} else {
if(node->sibling == NULL && node->child == NULL) {
// Works, but attribute "0" to the node->value when I print
*node = NULL;
} else if(node->sibling == NULL && node->child != NULL){
*node = *node->child;
} else {
*node = *node->sibling;
}
}
}
Я знаю, что на самом деле я не удаляю удаляемое значение, поэтому советы и советы по этому поводу тоже приветствуются.