[英]Finding a value in a Binary Search Tree
我正在編寫函數代碼以查找 BinarySearchTree 中的參數傳遞的值,但它對我不起作用,我不知道為什么。如果價格在樹內,我必須返回 true,如果價格通過通過參數小於或等於 0 我必須返回“錯誤”,如果沒有找到我必須返回 false 這是我的代碼。
BinarySearchTree.prototype.searchPrice = function (price) {
if (price <= 0) return "Error"
if(this.value === price) return true;
if(this.value < price) return this.right.searchPrice(price);
if(this.value > price) return this.left.searchPrice(price);
if(this.value === null) return false;
};
問題可能是您最后對this.value
進行了null
檢查,這導致if(this.value < price)
在this.value
為null
時始終為true
嘗試移動線if(this.value === null) return false;
在頂部,看看它是否有效
更新:您還需要為this.left
和this.right
添加null
檢查
BinarySearchTree.prototype.searchPrice = function (price) {
if (price <= 0) return "Error"
// move this line at the top like this
if(this.value === null) return false;
if(this.value === price) return true;
if(this.value < price) {
if(!this.right) {
return false;
}
return this.right.searchPrice(price);
}
if(this.value > price){
if(!this.left) {
return false;
}
return this.left.searchPrice(price);
}
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.