Python树结构实现中TreeNode类add_child方法child.parent=self含义解释
child.parent = self 作用解释
这行代码的核心作用是为新添加的子节点绑定父节点引用,让树结构支持从子节点到父节点的反向访问,具体逻辑如下:
- TreeNode类初始化时,每个节点的
parent属性默认赋值为None,代表该节点暂时没有上级节点。 - 调用
add_child方法时,self指向调用该方法的父节点实例,child是传入的待添加的子节点实例。这行代码执行后,子节点的parent属性就会存储父节点的内存引用。
实际效果示例
以你给出的代码为例,当执行root.add_child(laptop)时:
self对应值为Electronics的根节点实例- 代码执行后,你可以直接通过
laptop.parent.data拿到父节点的值Electronics,不需要遍历根节点的children列表反向查找。
父节点引用的常见使用场景
如果没有这行代码,树结构只能支持从父节点到子节点的单向遍历,所有需要反向查找的操作都需要扫描全树,性能极低。绑定父节点引用后,可以快速实现以下功能:
- 计算节点所在的层级深度:沿着
parent向上遍历直到根节点即可,代码示例:
def get_node_level(node): level = 0 while node.parent is not None: level += 1 node = node.parent return level # 示例调用:get_node_level(laptop) 会返回1
- 删除节点时,快速从父节点的
children列表中移除当前节点 - 路径回溯类操作,比如从叶子节点往上生成到根节点的完整路径
内容的提问来源于stack exchange,提问作者Shankhadip Kundu
相关产品推荐
相关产品推荐

