私のツリーが正しく挿入されているかどうかをテストし、疑似古典的なインスタンス化を使ってこの作業を行っています。私の問題は、デバッガが真実がtrueに設定されていることを私に教えてくれることです。関数の最後から真理値を返すと、私は偽になります。私は考えることができるすべてを試しましたが、なぜこれが起こっているのか理解できません。バイナリ検索ツリーを検索するコードは次のとおりです。リターンとラインを更新しましたバイナリ検索ツリーを再帰するときに正しく値を返すことができません
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(値);' '戻りthis.right.contains(値);'と左と同じ。 –
またNULLをチェックしていません(つまり、ツリーの終わり) –
ありがとうございました。あなたのソリューションはうまくいきました。今はnull実装チェックを理解する必要があります。 – Milos