Python 2.7 查找到树中任何节点的距离

Python 2.7 查找到树中任何节点的距离,python-2.7,recursion,tree,Python 2.7,Recursion,Tree,我试图从下面树中的其他节点获取节点的深度。我有一个父子关系列表: Parent -> Children [2] -> [0] [1] -> [2,5] [5] -> [3,4,6] 我想找到一个节点与其他节点的深度/距离。 因此,从节点[5],深度[]={3,1,2,1,1,0,1} 我目前有: def get_depth(self,idx,depth): self.depth[idx]=depth for child in se

我试图从下面树中的其他节点获取节点的深度。我有一个父子关系列表:

Parent -> Children

[2] -> [0]

[1] -> [2,5]

[5] -> [3,4,6]
我想找到一个节点与其他节点的深度/距离。 因此,从节点
[5]
,深度[]={3,1,2,1,1,0,1}

我目前有:

def get_depth(self,idx,depth):

        self.depth[idx]=depth
        for child in self.sentence_prop.words[idx].children:
            get_depth(child[0],depth+1)
        return

其中idx=
[5]
和首字母
深度=0
。我这样做只是为了孩子,但我不知道如何为父母这样做。

我希望这能解决你的问题

1) 两个节点之间的距离由以下公式给出:

Dist(n1,n2)=Dist(root,n1)+Dist(root,n2)-2*Dist(root, 生命周期评价)

这里的lca:n1和n2的最低共同祖先。这适用于任何普通树

2) 您需要做的是:

  • 存储与要查找距离的每个节点对应的路径 的
  • 遍历路径以查找公共路径长度
  • 返回(len(路径1)+len(路径2)-2*(公共路径长度))

  • 二叉树的这个概念的实现是

    这对我来说似乎不清楚。你能举例说明更多的输入和输出例子吗?
    0
    的输出是什么?数字是否总是按顺序从
    1
    n