......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)函数吗?非常感谢。
答案 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)
但这只是一个开始。