Если вы не гарантируете какое-то сбалансированное дерево, это невозможно.
Рассмотрите дерево, которое является полностью вырожденным - например, каждый указатель left
имеет значение NULL (ноль, что угодно), поэтому каждый узел имеет толькоправильный ребенок (т. е. для всех практических целей «дерево» действительно представляет собой односвязный список).
В этом случае простой доступ к срединному узлу (вообще) занимает линейное время - даже если вы начализная, что узел N является медианой, все равно потребуется N шагов, чтобы добраться до этого узла.