[英]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.