修改插入修复完成后,没有把grandfather重新赋值给node的bug

This commit is contained in:
建峰 2024-07-01 09:54:50 +08:00
parent 571b28fb4f
commit bbc21c85a3

View File

@ -1168,14 +1168,10 @@ static bool tree_rb_rebalance(struct _tree* self, struct _tree_node* node)
if(node == father->right)
{
node = tree_turn_left(self, father);
node->color = RBT_BLACK;
}
else
{
father->color = RBT_BLACK;
}
father->color = RBT_BLACK;
grandfather->color = RBT_RED;
tree_turn_right(self, grandfather);
node = tree_turn_right(self, grandfather);
break;
}
}
@ -1194,14 +1190,10 @@ static bool tree_rb_rebalance(struct _tree* self, struct _tree_node* node)
if(node == father->left)
{
node = tree_turn_right(self, father);
node->color = RBT_BLACK;
}
else
{
father->color = RBT_BLACK;
}
father->color = RBT_BLACK;
grandfather->color = RBT_RED;
tree_turn_left(self, grandfather);
node = tree_turn_left(self, grandfather);
break;
}
}