var renamed
This commit is contained in:
parent
1fa5e1a8e3
commit
9ead70be1b
@ -59,49 +59,49 @@ public class BinaryTree {
|
|||||||
|
|
||||||
public void delete(int value) {
|
public void delete(int value) {
|
||||||
|
|
||||||
NodeVO nodeToDeleteAux = findNodeToDelete(root, root, false, value);
|
NodeVO nodeToDeleteVO = findNodeToDelete(root, root, false, value);
|
||||||
|
|
||||||
if (nodeToDeleteAux == null) {
|
if (nodeToDeleteVO == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Case 1: no children
|
// Case 1: no children
|
||||||
if (nodeToDeleteAux.node.left == null && nodeToDeleteAux.node.right == null) {
|
if (nodeToDeleteVO.node.left == null && nodeToDeleteVO.node.right == null) {
|
||||||
if (nodeToDeleteAux.node == root) {
|
if (nodeToDeleteVO.node == root) {
|
||||||
root = null;
|
root = null;
|
||||||
} else if (nodeToDeleteAux.isLeftChild) {
|
} else if (nodeToDeleteVO.isLeftChild) {
|
||||||
nodeToDeleteAux.parent.left = null;
|
nodeToDeleteVO.parent.left = null;
|
||||||
} else {
|
} else {
|
||||||
nodeToDeleteAux.parent.right = null;
|
nodeToDeleteVO.parent.right = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Case 2: only 1 child
|
// Case 2: only 1 child
|
||||||
else if (nodeToDeleteAux.node.right == null) {
|
else if (nodeToDeleteVO.node.right == null) {
|
||||||
if (nodeToDeleteAux.node == root) {
|
if (nodeToDeleteVO.node == root) {
|
||||||
root = nodeToDeleteAux.node.left;
|
root = nodeToDeleteVO.node.left;
|
||||||
} else if (nodeToDeleteAux.isLeftChild) {
|
} else if (nodeToDeleteVO.isLeftChild) {
|
||||||
nodeToDeleteAux.parent.left = nodeToDeleteAux.node.left;
|
nodeToDeleteVO.parent.left = nodeToDeleteVO.node.left;
|
||||||
} else {
|
} else {
|
||||||
nodeToDeleteAux.parent.right = nodeToDeleteAux.node.left;
|
nodeToDeleteVO.parent.right = nodeToDeleteVO.node.left;
|
||||||
}
|
}
|
||||||
} else if (nodeToDeleteAux.node.left == null) {
|
} else if (nodeToDeleteVO.node.left == null) {
|
||||||
if (nodeToDeleteAux.node == root) {
|
if (nodeToDeleteVO.node == root) {
|
||||||
root = nodeToDeleteAux.node.right;
|
root = nodeToDeleteVO.node.right;
|
||||||
} else if (nodeToDeleteAux.isLeftChild) {
|
} else if (nodeToDeleteVO.isLeftChild) {
|
||||||
nodeToDeleteAux.parent.left = nodeToDeleteAux.node.right;
|
nodeToDeleteVO.parent.left = nodeToDeleteVO.node.right;
|
||||||
} else {
|
} else {
|
||||||
nodeToDeleteAux.parent.right = nodeToDeleteAux.node.right;
|
nodeToDeleteVO.parent.right = nodeToDeleteVO.node.right;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Case 3: 2 children
|
// Case 3: 2 children
|
||||||
else if (nodeToDeleteAux.node.left != null && nodeToDeleteAux.node.right != null) {
|
else if (nodeToDeleteVO.node.left != null && nodeToDeleteVO.node.right != null) {
|
||||||
Node replacement = findReplacement(nodeToDeleteAux.node);
|
Node replacement = findReplacement(nodeToDeleteVO.node);
|
||||||
if (nodeToDeleteAux.node == root) {
|
if (nodeToDeleteVO.node == root) {
|
||||||
root = replacement;
|
root = replacement;
|
||||||
} else if (nodeToDeleteAux.isLeftChild) {
|
} else if (nodeToDeleteVO.isLeftChild) {
|
||||||
nodeToDeleteAux.parent.left = replacement;
|
nodeToDeleteVO.parent.left = replacement;
|
||||||
} else {
|
} else {
|
||||||
nodeToDeleteAux.parent.right = replacement;
|
nodeToDeleteVO.parent.right = replacement;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user