diff options
Diffstat (limited to 'pkg/rbtree/rbtree.go')
-rw-r--r-- | pkg/rbtree/rbtree.go | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/pkg/rbtree/rbtree.go b/pkg/rbtree/rbtree.go index 5cc9ac6..13d9602 100644 --- a/pkg/rbtree/rbtree.go +++ b/pkg/rbtree/rbtree.go @@ -330,7 +330,8 @@ func (t *Tree[K, V]) Delete(key K) { return } - var nodeToRebalance, nodeToRebalanceParent *Node[V] + var nodeToRebalance *Node[V] + var nodeToRebalanceParent *Node[V] // in case 'nodeToRebalance' is nil, which it can be needsRebalance := nodeToDelete.Color == Black switch { @@ -410,7 +411,7 @@ func (t *Tree[K, V]) Delete(key K) { if needsRebalance { node := nodeToRebalance - nodeParent := nodeToRebalanceParent // in case 'node' is nil, which it can be + nodeParent := nodeToRebalanceParent for node != t.root && node.getColor() == Black { if node == nodeParent.Left { sibling := nodeParent.Right |