Python в порядке обхода к плоскому списку

Я создал метод класса TreeNode, который я хочу вернуть плоский список обхода дерева в порядке

Мое примерное дерево:

Sample tree data

Выходные данные обхода в порядке должны быть : [1, 1, 0, 2, 1, 3, 1, 1, 0]

но я получаю: [2, 1, 1, 0, 1, 3, 1, 1, 0]

Вот мой код:

def in_order_list(self, r = []):
    hasLeft = self.left is not None
    hasRight = self.right is not None
    if self is None:
        return
    else:
        if hasLeft:
            self.left.in_order_list(r)
        r.append(self.value)
        if hasRight:
            self.right.in_order_list(r)
    return r

Сможет ли кто-нибудь объяснить мне, почему это происходит?

Спасибо Alex

6
задан Alex2134 24 February 2012 в 00:11
поделиться