Я хотел наглядно нарисовать пошаговый процесс вращения бинарного дерева. Взято из Рэя Вендерлиха — Структуры данных и алгоритмы в Swift, я почувствовал, что в некоторых диаграммах есть небольшой пробел, поэтому я решил их заполнить!

private func leftRotate(_ node: AVLNode<Element>) -> AVLNode<Element> {
    let pivot = node.rightChild!
    node.rightChild = pivot.leftChild
    pivot.leftChild = node
    node.height = max(node.leftHeight, node.rightHeight) + 1
    pivot.height = max(pivot.leftHeight, pivot.rightHeight) + 1
    return pivot
}

По сути, что происходит…