From bbc21c85a38b8903139088d8d39fca1133586116 Mon Sep 17 00:00:00 2001 From: wjf-hs Date: Mon, 1 Jul 2024 09:54:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8F=92=E5=85=A5=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E5=AE=8C=E6=88=90=E5=90=8E=EF=BC=8C=E6=B2=A1=E6=9C=89?= =?UTF-8?q?=E6=8A=8Agrandfather=E9=87=8D=E6=96=B0=E8=B5=8B=E5=80=BC?= =?UTF-8?q?=E7=BB=99node=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/tree.c | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/src/tree.c b/src/tree.c index 9f049e0..cfe84e9 100644 --- a/src/tree.c +++ b/src/tree.c @@ -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; } }