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