Java-метод дает неожиданный возврат - PullRequest
0 голосов
/ 18 октября 2018

Я работаю над Java Binary Search Tree и пытаюсь использовать метод findHelp() в find().Я ожидаю возвращаемое значение rt.getValue() (которое равно C2-112 , поскольку я печатаю непосредственно перед возвратом), но распечатка findHelp() в методе справки возвращает null.

Я не смог найти похожую ошибку в Интернете, поэтому кто-то может помочь мне разобраться или дать ссылку на похожую проблему?

Вот мой код

private E findHelp(BinaryNode<Key, E> rt, Key k) {
        int compare = k.compareTo(rt.getKey()); 
        if (compare==0) {
            System.out.println(rt.getValue()); // I'm getting C2-112 here 
            return rt.getValue(); // so I expect a return of C2-112
        } else if (compare >0 ) {
            if (rt.getRight() == null) {
                return null;
            } else {
                findHelp(rt.getRight(), k);
            }
        } else {
            if (rt.getLeft() == null) {
                return null;
            } else {
                findHelp(rt.getLeft(), k);
            }
        }
        return null;
    } // 

public E find(Key k) {
        E tmp = findHelp(root, k); 
        System.out.println(tmp); // this prints null, not C2-112
        return findHelp(root, k); // and so I return null
    }

1 Ответ

0 голосов
/ 18 октября 2018

добавить return перед каждым findHelp(...)

...