【发布时间】:2017-05-24 16:38:08
【问题描述】:
在 python 中,我有一个表示二叉树的嵌套列表的列表:
L = [0, [[1, [2, 3]], [4, [5, 6]]]]
所以树可以如下所示:
0
/ \
1 4
/\ /\
2 3 5 6
我现在想实现一个函数,该函数将树的一个级别作为输入并返回该级别的所有节点:
GetNodes(0) = 0
GetNodes(1) = [1,4]
GetNodes(2) = [2,3,5,6]
有没有一种简单的方法可以做到这一点,避免对L 的所有嵌套列表进行粗暴搜索?
是否有可能在 python 中对二叉树进行更标准的管理,也许将我的列表转换为其他东西?
【问题讨论】:
-
看看这是否有帮助:github.com/joowani/binarytree
-
请注意,您可以使用
collections.defaultdict:def tree(): return defaultdict(tree)来构建树。通过[some_element]访问元素。因为您想要某个级别的所有元素,所以我认为除了从最顶部开始遍历树直到指定级别(这就是您所说的“蛮力”的意思吗?)之外别无他法。 -
称为水平顺序遍历。谷歌一下,你会找到很多答案
标签: python list tree binary-search-tree