在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中进行更为标准的二叉树管理,也许可以将我的列表清单转换成别的东西?
看看这可以帮助:https://github.com/joowani/binarytree – scriptboy
注意,你可以通过使用'collections.defaultdict'构建一棵树:'def tree():return defaultdict(tree)'。访问元素通过'[some_element]'完成。因为你想要一个特定级别的所有元素,我认为没有别的办法,只能从最顶层开始遍历树,直到指定的级别(这就是你所说的“暴力”)。 –
它被称为级别遍历。谷歌它,你会发现很多答案 –