我有此方法,它应该在屏幕上显示BST中最小的n个元素, 示例n = 3,最小的3个元素,依此类推。
不幸的是,在运行时,表明它达到了空内容并被关闭。进一步说明,该方法应该给与int并返回它不为空,但是我找不到另一种方式来显示所有Elements,因为返回类型int只会给出一个Element吗?对?
public int sorteduptp(int n) {
if (n > 0 && !isEmpty()) {
BinarySearchTree current = this;
while (!current.leftChild.isEmpty() && current.size() != n) {
current = current.leftChild;
}
if (n == 1) {
System.out.println(current.leftChild.getContent());
return 0;
} else {
sorteduptp(n - 1);
while (!current.isLeaf()) {
System.out.println(current.getContent());
System.out.println(current.rightChild);
}
System.out.println(current.getContent());
}
}
}
答案 0 :(得分:1)
似乎current = current.leftChild;
永远不会在递归步骤中使用,因为current = this
会将当前设置为树的顶部。因此,您可能希望将其添加为参数并首先传递this
。
对于返回值,可以将其设置为整数数组,例如int[]
或ArrayList
。这些可以包含多个值。