擅长:python、mysql、java
<p>与其只返回对<code>isValidTree(root.left)</code>和<code>isValidTree(root.right)</code>的递归调用的结果,不如检查递归调用是否返回False,在这种情况下,将False结果传播给调用者。此外,如果没有遇到错误,则应返回True:</p>
<pre><code>def isValidTree(root, tempArr):
if root.left:
if not isValidTree(root.left, tempArr):
# Propagate error in left subtree to the parent.
return False
if len(tempArr) == 0:
tempArr.append(root.data)
elif tempArr[len(tempArr) - 1] >= root.data:
return False
else:
tempArr.append(root.data)
if root.right:
if not isValidTree(root.right, tempArr):
# Propagate error in right subtree to the parent.
return False
# No errors encountered, so it was valid.
return True
</code></pre>