I'm searching my binary search tree of Vehicle
objects and I'm just wondering whether there would be much point, if it's best practice to search to see if a node has a left/right child first like so:
return n.hasLeft() ? find(name, n.left()) : null;
Or just go with the following, since it will return null
if it doesn't exist anyway:
return find(name, n.left());
Here's the code for the whole method:
protected Vehicle find(String name, Node n)
{
if (n == null) return null;
int order = name.compareTo(n.getVehicleName());
if (order == 0)
return n.getVehicle();
else if (order < 0)
return n.hasLeft() ? find(name, n.left()) : null;
else
return n.hasRight() ? find(name, n.right()) : null;
}
Would checking first be more efficient since it saves an extra recursive call being made?