【发布时间】:2016-09-12 00:04:07
【问题描述】:
我希望在 BST 中找到具有特定值的节点的父节点。我的节点类具有左右属性项(即值/键)。
寻找父母的想法是这样的:
1)如果值(key)不存在,返回None,None
2)如果根等于值(键),则返回无,根
3) Else 找到值 (key) 并返回 (par, node) 其中 par 是父节点和节点
我的函数如下所示:
def findpar(self,key):
if not self._exists(key):
return None,None
elif self.root.item==key:
return None, self.root
p=self.root
found=False
while not found:
if p.left.item==key:
return p, p.left
found=True
elif p.right.item==key:
return p, p.right
found=True
elif p.item<key:
p=p.left
elif p.item>key:
p=p.right
当p.left 或p.right 为None 时,我该如何处理?
【问题讨论】:
标签: python python-3.x