私はここに、この簡単な方法があります:Return文が機能しません!
private Node addItem(Node current, Node target) {
if (current.data.getId() < target.data.getId()) {
if (current.larger == null) {
current.larger = target;
Log.i("BinaryTree", "Added item: " + target.data.getId());
return target;
}
return addItem(current.larger, target);
} else {
if (current.smaller == null) {
current.smaller = target;
Log.i("BinaryTree", "Added item: " + target.data.getId());
return target;
}
return addItem(current.smaller, target);
}
}
私はそれをデバッグするとき、コードが行になる「リターン・ターゲット;」、およびそれをスキップして、最後のreturn文に行く - 「のaddItemを返します(現在のより小さい、目標); '! 私はこの世のようなものは見たことがありません!
それがああ待って待ってreturn文 –
に達した場合、私は、これは再帰的な方法であり、法の外に出る必要があります。<_ < –
たぶん、あなたはバイトコードで見ることができます。デバッガでのみダブルリターンを得るか、またはプログラムが独自に実行されているときにも、 – toto2