Лучшее решение этой проблемы, которое я прочитал, можно найти здесь . Очень близко к ответу meriton , если вы исправите эту проблему:
На третьем шаге алгоритма перемещается влево, пока не достигнет узла, чье поддерево имеет ту же высоту, что и левое дерево . Это не всегда возможно, (см. Контрпример изображения). Правильный способ сделать этот шаг - два найти для поддерева с высотой h
или h+1
, где h
- высота левого дерева.