Балансировка бинарного дерева поиска на примере

Мне нужно сбалансировать уже существующее бинарное дерево. Внизу приведён чисто теоретический вариант дерева. Пытался его балансировать при помощи поворотов, но ничего не вышло. Также у меня нигде не хранится мера дисбаланса для вершин. Подскажите алгоритм (а лучше псевдокод) при помощи которого можно сбалансировать дерево.

           20
        /      \
       /        \ 
      10         25
     /  \        /\
    5     18    23 27
   /      /
  3      15
 /      /  \
1     14    16
      /      \
     13       17
    /
   12

Ответы (0 шт):