Fix issue #37 with AVL tree.

This commit is contained in:
Oleksii Trekhleb
2018-06-02 22:11:01 +03:00
parent 924066bb0c
commit 90b56bc3d3
3 changed files with 56 additions and 0 deletions

View File

@@ -80,6 +80,12 @@ export default class AvlTree extends BinarySearchTree {
const leftRightNode = leftNode.right;
leftNode.setRight(null);
// Preserve leftRightNode's left subtree.
if (leftRightNode.left) {
leftNode.setRight(leftRightNode.left);
leftRightNode.setLeft(null);
}
// Attach leftRightNode to the rootNode.
rootNode.setLeft(leftRightNode);
@@ -102,6 +108,11 @@ export default class AvlTree extends BinarySearchTree {
const rightLeftNode = rightNode.left;
rightNode.setLeft(null);
if (rightLeftNode.right) {
rightNode.setLeft(rightLeftNode.right);
rightLeftNode.setRight(null);
}
// Attach rightLeftNode to the rootNode.
rootNode.setRight(rightLeftNode);