【发布时间】:2019-03-18 08:42:28
【问题描述】:
我正在尝试编写一个执行以下操作的方法: 给定一个 BST,编写一个递归函数 BSTsmallcount,给定一个键值,返回值小于该键的节点数。您的函数应尽可能少地访问 BST 中的节点。
这就是我所拥有的:
public int BSTsmallcount(BinNode root, int key)
{
int count = 0;
if (root.right < key)
{
count += BSTsmallcount(root.left, key);
}
if (root.left < key)
{
count += BSTsmallcount(root.right, key);
}
return count;
}
但是这是不正确的,因为您不能使用二元运算符。我将如何完成这个问题?
【问题讨论】:
-
你能澄清一下对二元运算符的限制吗?你真的应该在没有算术、布尔或构造运算符的情况下这样做吗?甚至在没有
<的情况下攻击它似乎很奇怪。 -
我不确定,它给了我这个错误:二元运算符'的操作数类型错误
-
是什么给了你这个错误?编译器?该错误并不是说您不能使用二元运算符'
-
是的,它是我正在使用的编码实践网站上的编译器。我想我的错误是我需要访问节点的 VALUE,但是 node.getElement 和 node.value 不起作用。
标签: java recursion binary-tree