以下是一个示例代码,用于遍历树形结构并找到所有父元素ID:
def find_parents(tree, element_id): if tree["id"] == element_id: return [element_id] for child in tree.get("children", []): result = find_parents(child, element_id) if result: return [tree["id"]] + result return []
这个函数递归地遍历树形结构。在每个节点上,它首先检查当前节点是否是目标元素,如果是则返回该元素的ID。否则,它遍历当前节点的子节点,并对每个子节点递归调用自身。如果有任何一个子节点返回了一个结果,则该节点也返回该结果(即当前节点是该结果的父节点)。最后,如果没有子节点返回结果,则该节点返回一个空列表。
调用该函数时,可以将树形结构和目标元素ID作为参数传递:
tree = { "id": "A", "children": [ { "id": "B", "children": [ { "id": "C" }, { "id": "D" }, ], }, { "id": "E", "children": [ { "id": "F" }, { "id": "G" }, ], }, ], } element_id = "D" parents = find_parents(tree, element_id) print(parents) # 输出 ["A", "B"]
在这个示例中,我们传递了一个树形结构 tree
和目标元素ID "D"
,并且该函数返回了所有父元素ID,即 ["A", "B"]
。