簡體   English   中英

Java方法提供意外的回報

[英]Java method giving unexpected return

我正在研究Java Binary Search Tree,並且正在嘗試在find()使用方法findHelp() find() 我期望返回值為rt.getValue() (這是C2-112 ,因為我在返回之前就打印出來了),但是在help方法中打印出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
    }

在每個findHelp(...)之前添加return

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM