fix(search tree): fixed removal of nodes with only right sided nodes
This commit is contained in:
parent
dab5f6a9b2
commit
d6e1a5309d
1 changed files with 2 additions and 2 deletions
|
|
@ -184,9 +184,7 @@ FledastyError fledasty_binary_search_tree_##name##_remove(FledastyBinarySearchTr
|
|||
while (replacement_node->right != NULL) { \
|
||||
replacement_node = replacement_node->right; \
|
||||
} \
|
||||
} \
|
||||
\
|
||||
if (replacement_node != NULL) { \
|
||||
replacement_node->left = current_node->left; \
|
||||
if (current_node->left != NULL) { \
|
||||
current_node->left->parent = replacement_node; \
|
||||
|
|
@ -196,7 +194,9 @@ FledastyError fledasty_binary_search_tree_##name##_remove(FledastyBinarySearchTr
|
|||
if (current_node->right != NULL) { \
|
||||
current_node->right->parent = replacement_node; \
|
||||
} \
|
||||
} \
|
||||
\
|
||||
if (replacement_node != NULL) { \
|
||||
if (replacement_node->parent->right == replacement_node) { \
|
||||
replacement_node->parent->right = NULL; \
|
||||
} else { \
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue