Бинарное дерево - проблемы c find()

При создание бинарного дерева, вышла ошибка, не находятся числа, которые я ранее добавлял. Кроме первого. Это BinaryTree32.java:

public class BinaryTree32 {

element node;

public void add(int number) {
    node = addElement(node, number);
}
public int find(int number) {
    return findElement(node, number);
}

private element addElement(element root, int number) {
    if(root == null) {
        return new element(number);
    }

    if (root.number > number) {
        root.right = addElement(root.right, number);
    } else if (root.number < number) {
        root.left = addElement(root.left, number);
    } else {
        return root;
    }
    return root;
}

private int findElement (element root, int number) {
    if (root == null) {
        return 0;
    }
    if (number == root.number) {
        return 1;
    }
    return root.number < number
            ? findElement(root.right, number)
            : findElement(root.left, number);
}

class element {
    int number;
    element right;
    element left;

    element(int number) {
        this.number = number;
        right = null;
        left = null;
    }
}

}

и Main:

public class Main {

public static void main(String[] args) {

    BinaryTree32 bd = new BinaryTree32();
    bd.add(10);
    bd.add(1);
    bd.add(9);
    bd.add(8);
    bd.add(7);
    bd.add(18);
    bd.add(15);

    System.out.println(bd.find(10));
    System.out.println(bd.find(1));
    System.out.println(bd.find(9));
    System.out.println(bd.find(8));
    System.out.println(bd.find(7));
    System.out.println(bd.find(18));
    System.out.println(bd.find(15));

Консоль выводит: 1 0 0 0 0 0 0 Заранее спасибо, за ответ)


Ответы (0 шт):