【发布时间】:2017-08-27 07:35:31
【问题描述】:
我已经测试过我的树是否被正确插入,并且正在使用伪经典实例化来完成这项工作。我的问题是调试器会告诉我真值被设置为真,然后当我从函数末尾返回真值时,我得到假。我已经尝试了我能想到的一切,但我无法弄清楚为什么会发生这种情况。这是我搜索二叉搜索树的代码。
var valuetest;
var truth = false;
if (this.value === value) {
var truth = true;
return truth;
} else if (value > this.value) {
valuetest = this.right.value;
if (valuetest === value) {
truth = true;
return truth;
} else {
this.right.contains(value);
}
} else {
valuetest = this.left.value;
if (valuetest === value) {
truth = true;
return truth;
} else {
this.left.contains(value);
}
}
return truth;
//returns false even if truth is set to true for some reason.
【问题讨论】:
-
将
this.right.contains(value);更新为return this.right.contains(value);,与left相同。 -
另外,您没有检查 NULL(即树的结尾)
-
谢谢,您的解决方案有效,现在我必须弄清楚 null 实现检查。
标签: javascript recursion binary-search-tree