背景
我有一个关于在树中定位节点的问题。
我有一个简单的二叉树。每个节点中都有一段数据。让我们说它看起来像这样:
a
/ \
b c
其中a=root, b=root.left,c=root.right
树不是手动创建的。假设我收到一个添加new_data到节点 c的请求。
我很困惑如何知道 c 在没有明确写的情况下在哪里root.right.data=new_data。
我的第一个想法是创建某种类型的辅助字典,其中包含对节点位置的引用,例如:
helper = {
'a'= root,
'b'= root.left,
'c'= root.right
}
这样当我收到请求时,我就可以去找帮手说一些大意:
helper.get('c').data=new_data
问题
我在正确的球场吗?重复地递归搜索整个树似乎有点多 - 当树改变其节点结构时,这个助手可能会偶尔更新。
当我递归地爬取树时,我对如何为每个节点实际返回我的位置感到困惑。我怎样才能创建这个助手?
慕桂英3389331
相关分类