美文网首页
流利说-层序遍历二叉搜索树

流利说-层序遍历二叉搜索树

作者: 葡萄肉多 | 来源:发表于2019-07-30 22:53 被阅读0次

输入一棵二叉搜索树,从上往下按层次打印树的每一个节点,同一层中按从左到右的顺序打印:TopDownLeftRight

输入描述
第一行是树的节点个数
第二行是按前序遍历得到的每个节点的数值,整型数,以空格隔开,以换行结束

输出描述
输出是以TopDownLeftRight 遍历的结果,依次用空格隔开,以换行结束

输入例子1:

9
8 3 1 6 4 7 10 14 13

输出例子1:

8 3 10 1 6 14 4 7 13

思路

二叉搜索树根节点都大于左边,小于右边

代码

n = int(input())
nodes = list(map(int, input().split()))
res = [[] for _ in range(n)]


def core(nums, ceng):
    global res
    if not nums:
        return
    res[ceng].append(nums[0])
    left = []
    right = []
    for i in range(1, len(nums)):
        if nums[i] <= nums[0]:
            left.append(nums[i])
        else:
            right.append(nums[i])
    core(left, ceng + 1)
    core(right, ceng + 1)


core(nodes, 0)

result = str(res[0][0])
for i in res[1:]:
    for j in i:
        result = result + " " + str(j)
print(result)

相关文章

网友评论

      本文标题:流利说-层序遍历二叉搜索树

      本文链接:https://www.haomeiwen.com/subject/vqtarctx.html