<p>我试图打印我的二叉搜索树的大小。但是,我的代码现在所做的是打印每个节点所处的级别。我觉得好像把我的<code>count += 1</code>放错了地方,或者可能是别的什么东西。我想知道是否有人能给我一双额外的眼睛,并给我一个提示,我可以如何解决这个问题。</p>
<p>输出:</p>
<pre><code>3
3
2
3
3
2
1
</code></pre>
<p>预期产量:</p>
<pre><code>7
</code></pre>
<p>我的代码:</p>
<pre><code>def BST_size(root, count = 0):
if root is None:
print "size -1 (Null value in root)"
if root is not None:
count += 1
if root.left is not None:
BST_size(root.left, count)
if root.right is not None:
BST_size(root.right, count)
print count
</code></pre>
<p>额外零件:</p>
<pre><code>class Node:
def __init__(self,value):
self.right = None
self.left = None
self.value = value
def BST_Insert(root, node): # root --> root of tree or subtree!
if root.value is None:
root = node # beginning of tree
else:
if root.value > node.value: # go to left
if root.left is None:
root.left = node
else:
BST_Insert(root.left, node)
if root.value < node.value: # go to right
if root.right is None:
root.right = node
else:
BST_Insert(root.right, node)
r = Node(4)
# left
a = Node(2)
b = Node(1)
c = Node(3)
# right
d = Node(8)
e = Node(6)
f = Node(10)
BST_Insert(r, a)
BST_Insert(r, b)
BST_Insert(r, c)
BST_Insert(r, d)
BST_Insert(r, e)
BST_Insert(r, f)
</code></pre>