Python,计算从一个成员到另一个成员的族树深度

时间:2016-12-12 21:19:15

标签: python recursion

我有一个包含家谱数据的字典(键 - 一个人的名字,它的价值 - 孩子)。 我想以递归方式从一个给定成员到另一个成员获取深度(get_depth(from_person,to_person))。

1 个答案:

答案 0 :(得分:0)

我会选择DFS,因为它可以轻松跟踪深度。

def get_depth(root, target):
    if root == target:
        return 0
    if not d[root]:
        return None
    for child in d[root]:
        depth = get_depth(child, target)
        if depth is not None:
            return 1 + depth
    return None

最后return严格来说是不必要的,但我更喜欢拼出这些东西。随意提出任何问题,但这应该是相当不言自明的。使用None替换-1然后检查if depth >= 0

可能会更舒服