How to remove a node from a binary search tree
If the node is a leaf, remove the pointer to the node
If there is only one child, copy the child onto the node and delete the child
If there are two children, replace the node with an empty node with pointers to both children