Из вашего описания это звучит так, как будто вы просто хотите: (1) отсортировать узлы в порядке убывания, затем (2) сделать каждый узел дочерним по отношению к своему предшественнику, если его значение строго меньше, чем у предшественника, ибрат или сестра его предшественника в противном случае.Таким образом, высота дерева - это просто число различных значений, которое является самым большим, которое может быть дано вашему третьему условию.
Я не могу не подозревать, что вы хотите чего-то более сложного.Я что-то упускаю из виду?