的NullReferenceException
System.NullReferenceException:对象不设置到对象的实例 的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
}
我不能看到什么错与此二叉树搜索
配置您使用的实现不使用需要考虑的情况是相互排斥的事实。如果遇到一起案件,可能会发生一项指控,破坏以下案件的先决条件。考虑下面的实现,它们明确地使得这些情况相互排斥。
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;
}
我认为这不重要,因为*条件*是相互排斥的。如果'curr.value
'else if(curr.value == null)' - 不能发生。值是一个'int'。 –
@PaulKertscher如果'curr.value
如果curr.value
请提供您的'Node'类(或最好是[mcve])和样本输入数据的代码。 –
把'if's改成'else if's –