Учитывая дерево AVL ниже:
23
/ \
19 35
/ \ / \
8 20 27 40
/
38
/
36
Можно ли сделать один оборот вправо на 40? Сделать это примерно так:
23
/ \
19 35
/ \ / \
8 20 27 38
/ \
36 40
Он по-прежнему соответствует свойству AVL, имеющему - + 1 высоту по сравнению с левым поддеревом.
В ответе выполняется двойное вращение, поэтому поддерево на 35 выше будет выглядеть следующим образом:
23
/ \
19 38
/ \ / \
8 20 35 40
/ \
27 36
Я не понимаю, когда делать двойной поворот, а когда делать один поворот, если они оба не нарушают свойство высоты.