打印二叉树如何修复build_balanced_bst函数

时间:2016-11-14 03:23:21

标签: python binary-tree

......10
....9
..8
......7
....6
5
......4
....3
..2
....1

我正在使用build_balanced_bst(l),build_balanced_bst(l)获取按递增顺序排序的唯一值列表。调用build_ballanced_bst(list(irange(1,10))返回一个高度为3的二叉搜索树,它将打印为:

l = list(irange(1,10))
t = build_balanced_bst(l)
print('Tree is\n',str_tree(t),sep='')

str_tree函数用于打印build_balanced_bst()函数返回的内容。我的str_tree函数是正确的,我无法改变它。我只能更改build_balanced_bst()函数。

我使用列表中的中间值作为根的值。当我尝试在下面调用build_balanced_bst(l)时,它不会打印任何内容。

{{1}}

有人可以帮我修复build_balanced_bst(l)函数吗?非常感谢。

1 个答案:

答案 0 :(得分:0)

str_tree()没有做任何事情:它只是定义一个嵌套函数并隐式返回None

首先,你可以让str_tree做某事

def str_tree(atree, indent_char ='.', indent_delta=2):
    def str_tree_1(indent, atree):
        # Note that str_tree_1 doesn't use the indent argument
        if atree == None:
            return ''
    return str_tree_1(indent_delta, atree)

但这只是一个开始。