1: // @author Frank M. Carrano, Timothy M. Henry
2: // @version 5.0
3: private void removeNode(BinaryNode<T> nodeToRemove, BinaryNode<T> parentNode)
4: {
5: BinaryNode<T> childNode;
7: if (nodeToRemove.hasLeftChild())
8: childNode = nodeToRemove.getLeftChild();
9: else
10: childNode = nodeToRemove.getRightChild();
12: // Assertion: if nodeToRemove is a leaf, childNode is null
14: if (nodeToRemove == getRootNode())
15: setRootNode(childNode);
16: else if (parentNode.getLeftChild() == nodeToRemove)
17: parentNode.setLeftChild(childNode);
18: else
19: parentNode.setRightChild(childNode);
20: } // end removeNode