You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python树结构实现中TreeNode类add_child方法child.parent=self含义解释

child.parent = self 作用解释

这行代码的核心作用是为新添加的子节点绑定父节点引用,让树结构支持从子节点到父节点的反向访问,具体逻辑如下:

  1. TreeNode类初始化时,每个节点的parent属性默认赋值为None,代表该节点暂时没有上级节点。
  2. 调用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 18:54:04