SuperAPI AI 工具集

tree-rerooting

编程与开发

查看项目

更新于 10-15 23:46

技能介绍

用途:对无向树进行换根(re-rooting),从任一目标节点重新建立父子视角,可用于改变树的观察点、查找两个节点之间的路径,或重新设定父子关系。

主要能力与规则:先把树构造成无向邻接表,使原本的 parent↔children 变成对称的邻居集合;再从目标节点做 DFS/BFS;每个访问到的节点,其父节点设为来时的节点,子节点为全部邻居去掉该父节点。求 path-between(a, b) 时,先以 a 为根换根,再从 b 沿父指针向上走到 a。

限制:若目标节点不在树中,返回 None,而不是报错。换根时绝不修改原始树,必须构建一份新的节点结构;始终保留原树不变,以保证 from_pov 可以被重复调用。复杂度为每次换根 O(N)。

使用方式:示例中给出了求 a 与 b 之间路径的流程——构建邻接表,以 a 为根做 DFS,再从 b 沿父指针走到 a;始终构建新结构,不要改动原树。资料未提供安装命令、具体代码接口或其他平台支持信息。