擅长:python、mysql、java
<p>问题是您的代码将<code>printBST</code>的返回值传递给<code>print</code>。由于<code>printBST</code>不返回任何内容,<code>None</code>被打印。在</p>
<p>所以当你写道:</p>
<pre><code>print printBST(root.nodeleft)
</code></pre>
<p>该代码肯定会打印<code>None</code>,因为<code>printBST</code>不包含返回语句,因此默认返回{<cd4>}。在</p>
<p>您需要更改<code>printBST</code>才能执行此操作:</p>
^{pr2}$
<p>还要注意,使用<code>is</code>是测试<code>None</code>的正确方法。在</p>
<p>也就是说,您可以这样简化代码:</p>
<pre><code>def printBST(root):
if root is None:
print 'EOT'
return
print 'RR', root.value
printBST(root.nodeleft)
printBST(root.noderight)
</code></pre>
<p>除了更简单之外,此代码还有一个额外的好处,即当呈现空树时不会失败。在</p>