这是我正在尝试的二元搜索树的过去的试卷。我无法检查输出是否正确,因为我无法构建其中一个。
问题在于标题
class Tree{
Tree left;
Tree right;
int key;
public static int span(Tree tree)
{
if ( tree == null ){
return null;
}
if( tree.left != null)
int min = span(tree.left);
}
if( tree.right != null){
int max = span(tree.right);
}
return max - min;
}
}
有人可以建议我需要更改以获得5/5标记:D - 我们唯一要做的就是编写span
方法,标题是给我们的。
答案 0 :(得分:1)
您需要定义两个方法min(Tree)
和max(Tree)
,然后将span(Tree t)
定义为max(t) - min(t)
。 span
本身不应该是递归的,但如果需要,可以递归min
和max
。
请注意,min
和max
不是自己的方法。如果你不关心让它们作为自己的单位,你可以把它全部放到span
这样:
int span(Tree t) {
Tree tMin = t;
while (tMin.left != null) {
tMin = tMin.left;
}
Tree tMax = t;
while (tMax.right != null) {
tMax = tMax.right;
}
return tMax.key - tMin.key;
}