Source of 25.39.java


  1: private void removeNode(BinaryNode<T> nodeToRemove, BinaryNode<T> parentNode)
  2: {
  3:    BinaryNode<T> childNode;
  4: 
  5:    if (nodeToRemove.hasLeftChild())
  6:       childNode = nodeToRemove.getLeftChild();
  7:    else
  8:       childNode = nodeToRemove.getRightChild();
  9: 
 10:    // Assertion: if nodeToRemove is a leaf, childNode is null
 11:    assert (nodeToRemove.isLeaf() && childNode == null) || !nodeToRemove.isLeaf();
 12: 
 13:    if (nodeToRemove == getRootNode())
 14:       setRootNode(childNode);
 15:    else if (parentNode.getLeftChild() == nodeToRemove)
 16:       parentNode.setLeftChild(childNode);
 17:    else
 18:       parentNode.setRightChild(childNode);
 19: } // end removeNode
 20: // Version 4.0