Я использую рекурсивный обход по порядку для дерева AVL и имею следующий код:
def inorder(self, root):
if root.left is not None:
self.inorder(root.left)
yield root
if root.right is not None:
self.inorder(root.right)
Когда я проверяю код в любом дереве AVL, вместо итерации к самому левому элементу, он просто возвращает корень и останавливается. Когда я отлаживаю, кажется, что рекурсивная функция вызова, но вызывающий узел не меняется. Есть идеи, почему это может происходить?