[英]python binary search tree size
我試圖實現一個二叉搜索樹,而我的size()
方法遇到了麻煩,該方法計算了樹中的節點數。
class BSTNode:
def __init__(self, item):
self._element = item
self._leftchild = None
self._rightchild = None
self._parent = None
這是我的尺寸功能:
def size(self):
size = 0
if self != None:
size += 1
if self._leftchild != None:
size += 1 + self._leftchild.size()
if self._rightchild != None:
size += 1 + self._rightchild.size()
return size
它超過了實際上在樹中的節點數,我不知道為什么,也許是因為它是遞歸的但我不確定。
更換
size += 1 + self._leftchild.size()
用
size += self._leftchild.size()
額外的1是計數過度的原因。 同樣適用於合適的孩子。
您正在對節點計數兩次。 您只應對每個節點計數一次。
def size(self):
size = 0
if self != None:
size += 1
if self._leftchild != None:
size += self._leftchild.size()
if self._rightchild != None:
size += self._rightchild.size()
return size
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.