So I'm searching my binary search tree of VehicleVehicle objects and I'm just wondering whether there would be much point/is it, 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 foillowingfollowing, since it will return nullnull if it doesn't exist anyway:
return find(name, n.left());
Heere'sHere'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?