There are corresponding cases where there is no reason to find out about values less than some minimum value. The min and max bounds are used to prune away subtrees by terminating a call to search early. Once a child node has been seen that pushes the node's value outside the range of interest, there is no point in exploring the rest of the children. This idea is captured by adding the tests if v > max return max and if v < min return min in the following code: