【发布时间】:2020-07-23 11:23:47
【问题描述】:
我为 HackerRank 上的编码挑战编写了这个算法,以确定给定的二叉树是否是 BST。然而在某些情况下,当树不是 BST 时,我的算法无论如何都会返回 True。我找不到哪里出了问题,一切似乎都很好,对吧?或者我对 BST 有什么不了解的地方?
节点定义为:
class node:
def __init__(self, data):
self.data = data
self.left = None
self.right = None
我的算法是
def checkBST(root):
if not root:
return True
else:
if root.left and root.left.data >= root.data:
return False
if root.right and root.right.data <= root.data:
return False
return checkBST(root.left) and checkBST(root.right)
【问题讨论】:
标签: python python-3.x algorithm binary-tree binary-search-tree