BST最小n元素显示

时间:2018-08-06 15:55:23

标签: java binary-search-tree

我有此方法,它应该在屏幕上显示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());

        }

    }
}

1 个答案:

答案 0 :(得分:1)

似乎current = current.leftChild;永远不会在递归步骤中使用,因为current = this会将当前设置为树的顶部。因此,您可能希望将其添加为参数并首先传递this

对于返回值,可以将其设置为整数数组,例如int[]ArrayList。这些可以包含多个值。