检查树是否为BST的此方法有什么问题

时间:2014-12-07 06:59:03

标签: recursion binary-tree binary-search-tree

我在#34;练习决赛中遇到了这个问题"我正在用于学习真正的决赛:

enter image description here

我无法想到为什么这种方法不起作用。逻辑似乎很好。如果每个BST,则BST仅是BST。父母<对,这正是这个方法递归检查的内容。

任何提示都将不胜感激!

1 个答案:

答案 0 :(得分:3)

除了重复值之外,二叉搜索树的definition需要:

  

左子树仅包含密钥小于父节点的节点;右子树仅包含密钥大于父节点的节点。

您问题中的代码不会检查。考虑以下树:

  2
 /
1
 \
  3 

这会通过测试,但不是有效的BST:要将其作为BST,3必须位于2子树中}。

有关正确实施的示例,请参阅https://stackoverflow.com/a/759851/367273