Java 方法给出意外的回报

我正在研究 Java 二叉搜索树,我正在尝试findHelp()在find(). 我期待的返回值rt.getValue()(即C2-112,因为我在返回之前打印出来),但findHelp()在 help 方法中打印出来返回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

    }


达令说
浏览 169回答 1
1回答

慕的地8271018

return在每个之前添加一个findHelp(...)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java