1
我希望在BST中找到具有特定值的節點的父節點。我的節點類具有屬性項(即值/鍵),左側和右側。在二叉搜索樹中查找父項?
想法找到一個親本是這樣的:
1)如果該值(鍵)不存在,則返回無,無
2)如果根是等於值(鍵),則返回None根
3)否則查找值(鍵)和回報(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,這應該對我有很大的幫助。 – Lozansky
@Lozansky HTH。 LMK,如果有錯誤或代碼的東西,我就直接寫入答案。 –