如何在树中找到两个节点之间路径的长度?

时间:2016-10-21 00:05:39

标签: java tree

我想计算树中两个任意节点之间的路径(用Java实现)。 文献中是否有任何解决方案?

2 个答案:

答案 0 :(得分:1)

您可以使用共同的祖先计算树中两个节点之间的距离。

应该是这样的:

Dist(n1, n2) = Dist(root, n1) + Dist(root, n2) - 2*Dist(root, lca) 

答案 1 :(得分:1)

               10(root)
               /\
              8  11
             / \   \
            7   9   15

距离(7,9)= 2

我们可以计算距离(根,7)= 2,并计算距离(根,9)= 2,LCA(7,9)= 8.LCA代表"最低共同祖先"因此,distance(7, 9) = distance(root, 7) + distance(root, 9) - 2*distance(root, LCA) = 2 + 2 - 2*1 = 2

现在你可以看到方法;真正的问题是如何计算距离(root,anyNode)。这是一个常见问题,我假设您将能够尽快找到如何找到任何所需节点的距离。