Program also shows a recursive implementation of
the findMin method of the BinarySearchTree class.
It follows directly from the data ordering property of search trees
that to find the node containing the smallest key in the tree,
we start at the root and follow the chain of left subtrees until we
get to the node that has an empty left subtree.
The key in that node is the smallest in the tree.
Notice that no object comparisons are necessary to identify the smallest
key in the tree.
The running time analysis of the findMin method
follows directly from that of the find method.
The worst case running time of findMin is O(n)
and the average running time is ,
where n is the number of internal nodes in the tree.