簡體   English   中英

在二叉搜索樹中查找值

[英]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.valuenull時始終為true

嘗試移動線if(this.value === null) return false; 在頂部,看看它是否有效

更新:您還需要為this.leftthis.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM