Почему неправильно работает метод поиска в бинарном дереве поиска?

Подскажите, где ошибка и как его исправить.

public class BSTree {
    private Node root;

    public BSTree() {
    }

    public void insert(int value) {
        Node parent = null;
        Node current = root;
        while (current != null) {
            parent = current;
            if (value >= current.value)
                current = current.right;
            else
                current = current.left;
        }
        if (parent != null) {
            if (value >= parent.value)
                parent.right = new Node(value);
            else
                parent.left = new Node(value);
        } else {
            root = new Node(value);
        }
    }

    public Node search(int key) {
        return recursiveSearch(key, root);
    }

    private Node recursiveSearch(int key, Node node) {
        if (node != null) {
            if (node.value > key)
                recursiveSearch(key, node.left);
            else if (node.value < key)
                recursiveSearch(key, node.right);
            else
                return node;
        }
        return null;
    }

    public void remove(int target) {
    }

    public static class Node {
        int value;
        Node left;
        Node right;

        public Node(int value) {
            this.value = value;
        }
    }
}

Тест:

public class Main {

    public static void main(String[] args) {
        BSTree tree = new BSTree();
        tree.insert(5);
        tree.insert(6);
        tree.insert(7);
        tree.insert(8);
        tree.insert(1);
        tree.insert(2);
        tree.insert(3);

        System.out.println(tree.search(5) != null); // true
        System.out.println(tree.search(6) != null); // false
    }
}

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

Автор решения: MBo

У вас внутри рекурсии результат никуда не возвращается

 private Node recursiveSearch(int key, Node node) {
        if (node != null) {
            if (node.value > key)
                return recursiveSearch(key, node.left);
            else if (node.value < key)
                return recursiveSearch(key, node.right);
            else
                return node;
        }
        return null;
    }
→ Ссылка