BinaryTree搜索算法中的NullReferenceException

时间:2017-10-19 07:45:04

标签: c# algorithm search binary-tree binary-search-tree

  

System.NullReferenceException:未将对象引用设置为实例   对象

public int find(int value) {
        Node curr = root;
        while (curr != null) {
            if (curr.value == value) {
                return value;//success
            }
            if (curr.value < value) {
                curr = curr.lChild;
            }
            if (curr.value > value) {
                curr = curr.rChild;
            }
            if (curr.value == null) {
                break;
            }
        }
        return 0;//No Value
    }

我看不出这个二元搜索

的配置有什么问题

1 个答案:

答案 0 :(得分:0)

您使用的实施不使用需要考虑的案例是互斥的事实。如果一个案件被击中,可能会发生一项破坏以下案件前提条件的任务。考虑以下实现,它明确地使这些情况相互排斥。

public int find(int value) {
    Node curr = root;
    while (curr != null) {
        if (curr.value == value) {
            return value;
        }
        else if (curr.value < value) {
            curr = curr.lChild;
        }
        else if (curr.value > value) {
            curr = curr.rChild;
        }
        else if (curr.value == null) {
            break;
        }
    }
    return 0;
}