键值对的树没有找到键

1 java tree key

我有一个存储密钥及其值的树.这是我的查找操作:

public int find(int k) {
    System.out.println(k + " : " + this.k);
    if (k == this.k) {
        return 1;
    }

    if (k < this.k){
        if (left != null) {
            left.find(k);
        }
    } else {
        if (right != null) {
            right.find(k);
        }
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这在尝试查找树的根时工作正常.例如,以下是输入和查找键的一些输出:

在此输入图像描述

c 5使用单个密钥生成根节点.(默认值为0.0)

e 5调用我的find()函数并输入5,4,8,9 ..作为键.任何人都可以告诉我为什么,即使键输出为匹配,它们也不会返回1?

提前致谢!

rge*_*man 5

如果在根目录中找不到密钥,则在左或右子项上递归调用方法,但是忽略结果并返回0.尝试

return left.find(k);
Run Code Online (Sandbox Code Playgroud)

return right.find(k);
Run Code Online (Sandbox Code Playgroud)

此外,它似乎是你返回1而不是一个值; 我这里只看到与密钥相关的代码.您可能希望在此处返回值而不是1.另外,可以0是有效值吗?如果是这样,返回0可能意味着您找到了0或者您找不到匹配项.而不是返回0,你可能想要抛出一个NoSuchElementException表示它没有找到.