假设我有一个矩阵,其中反向(重新组合)下三角形是二叉树,初始节点具有值4(左下),分支到3& 5,具有3分支到2& 4和5分支到4& 6,依此类推。
m = ((0, 0, 6),
(0, 5, 4),
(4, 3, 2))
如何在此树中找到所有唯一路径作为元组? 当然,对于具有$ n $步骤的树(即$ n + 1 $终端节点),将有$ 2 ^ n $个路径。
[(4,3,2), (4,3,4), (4,5,4), (4,5,6)]
答案 0 :(得分:1)
您可以: - 对树进行一些遍历,例如BFS或DFS 最简单的方法是递归
procedure Walk(node, route)
if node = nil then //leaf node is reached
output(route)
else
Walk(node.left, route + node.name)
Walk(node.right, route + node.name)
Walk(root, empty)
- 地图编号范围为0..2 n -1,可能的路线为:
如果数字的第i位(左起)是1,则在第i级使用右分支,否则使用左分支。例如,(4,5,4)对应于数字2 =二进制10