在Python中二进制树inorder遍历

时间:2016-05-08 00:52:11

标签: python data-structures binary-tree inorder

我不认为我正确地遍历它并且当它需要返回一个新列表时它返回空。我已经卡住了一段时间,仍然需要做所有其他的遍历。将为所需的输出提供单元测试,但我的单元测试可能是错误的。

ball_2

2 个答案:

答案 0 :(得分:6)

您的实施中存在两个问题:

temp = [None]

上述语句创建一个包含None项目的列表:

x = len(temp) # x value will be 1

第二个问题是你的方法附加逻辑;你返回值而不是附加它们。

以下是基于您的代码的实现:

def inorder(self):
    result = []
    if self.__left:
        result += self.__left.inorder()

    result.append(self.__value)

    if self.__right:
        result += self.__right.inorder()

    return result

答案 1 :(得分:0)

如果存在,有序遍历将需要下降到两个子树中,并访问其间的根;您的代码在遍历子树之后返回,跳过其他子树根。