关于java:在“if”中遇到“return”时没有返回值的方法

method not returning value when encountering “return” in an “if”

我的问题是,此方法"islargest"在满足"return true;"时不会结束。即使"else if"中的条件为真,它似乎只是跳过它,并始终返回"false"。我甚至打印了一个单词"测试"来证明这一点。当我使用这个方法时,它会说"test",并返回false。

我试着将这个"返回假"放在else或其他if中,但它表示"这个方法必须返回布尔类型",并建议我添加返回语句。我该怎么处理?

1
2
3
4
5
6
7
8
9
10
public boolean isLargest(Node tmp, Node parent){
    if(tmp.value > parent.value){
        parent = parent.right;
        tmp.isLargest(tmp, parent);
    }
    else if(parent.value == tmp.value){
        System.out.println("test");
        return true;
    }      
    return false;


当您进行递归调用时,需要返回递归调用的值。

1
2
3
4
5
6
7
8
9
10
public boolean isLargest(Node tmp, Node parent){
if(tmp.value > parent.value){
    parent = parent.right;
    return tmp.isLargest(tmp, parent);
}
else if(parent.value == tmp.value){
    System.out.println("test");
    return true;
}      
return false;