【发布时间】:2020-01-03 08:36:35
【问题描述】:
我有一段代码需要深入了解,我不想知道问题的正确解决方案。我只想知道为什么我的概念失败了。 所以功能是检查二叉树是否是BST。如果是,我需要返回 1,否则返回 0。我的代码如下
int isBST(Node root) {
if(root == null)
return 1;
if(root.left!=null) {
if(root.left.data<root.data)
isBST(root.left);
else
return 0; // line:a
}
if(root.right!=null) {
if(root.right.data<root.data)
isBST(root.right);
else
return 0;
}
return 1;
}
对于这件作品,当我有一棵二叉树时如下:
5
\
7
/
8
我希望它达到 8 值并在 line:a 处中断,但它返回 1 而不是 0。现在我知道 0 会返回给父调用方法。但它不会因为我在没有捕获返回值的情况下进行 isBST 调用而终止吗? 如有其他BUG请不要指出。
【问题讨论】:
标签: java recursion data-structures binary-search-tree