java - 给出意外返回的 Java 方法
问题描述
我正在研究 Java 二进制搜索树,我正在尝试使用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
}
解决方案
return
在每个之前添加一个findHelp(...)
推荐阅读
- javascript - Math.random() Javascript - 百分比和权重
- ios - 将 ReSwift 与子状态一起使用时,如何避免在更新另一个子状态时收到不需要的子状态更新?
- angular - Angular9上传多个文档如何在API中发送数据
- python - 为什么即使批量大小 = 1 也会出现内存分配错误?
- javascript - 尝试通过电子邮件发送谷歌表格,但未定义回复
- powershell - 如何设置 PowerShell 类的默认输出
- android - 设置 admob 的问题
- java - YARN 容器内存未反映在 java Xmx 设置中
- sql - 想同时更新和插入,两者不只一个
- android - 被 ionic-5 angular 中的 CORS 策略阻止