Если бы вы писали функцию, проверяющую, является ли дерево BST, то вы начинали бы с верхнего узла и рекурсивно проходили по дочерним узлам, проверяя, является ли каждый из них деревом BST. С другой стороны, вы также можете начать снизу и индуктивно подниматься. Оба решения идеальны.