在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]'完成。因爲你想要一個特定級別的所有元素,我認爲沒有別的辦法,只能從最頂層開始遍歷樹,直到指定的級別(這就是你所說的「暴力」)。 –
它被稱爲級別遍歷。谷歌它,你會發現很多答案 –