diff options
Diffstat (limited to 'meta2/collection.h')
-rw-r--r-- | meta2/collection.h | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/meta2/collection.h b/meta2/collection.h index 9067158..2c69216 100644 --- a/meta2/collection.h +++ b/meta2/collection.h @@ -321,7 +321,7 @@ public: virtual ~TreeNode() {
if(parent) {
if(parent->left == this) parent->left = 0;
- else parent->right = 0;
+ if(parent->right == this)parent->right = 0;
}
}
};
@@ -340,20 +340,18 @@ protected: return n;
} else if(n->right) {
if(n->parent) {
- if(n->parent->left = n) n->parent->left = n->right;
+ if(n->parent->left == n) n->parent->left = n->right;
else n->parent->right = n->right;
} else
root = n->right;
n->right->parent = n->parent;
- n->parent = 0; // don't mess with pointers
} else if(n->left) {
if(n->parent) {
- if(n->parent->left = n) n->parent->left = n->left;
+ if(n->parent->left == n) n->parent->left = n->left;
else n->parent->right = n->left;
} else
root = n->left;
n->left->parent = n->parent;
- n->parent = 0; // don't mess with pointers
} else {
if(n == root) root = 0;
}
|