[解決済み] 値を返す関数から何も返さないようにするにはどうしたらよいですか?
2022-02-14 12:28:38
質問
二分探索木があり、ノードを削除したいのですが、どうすればよいですか?
その親を取得する必要があるので、関数を書きました。
private BSTreeNode<T> getParent(BSTreeNode<T> root, BSTreeNode<T> node) {
if(root == null)
return null;
if(node.element().lessThan(root.element())) {
if(root.getLeft() != null && root.getLeft().element().equal(node.element()))
return root;
else
getParent(root.getLeft(), node);
} else {
if(root.getRight() != null && root.getRight().element().equal(node.element()))
return root;
else
getParent(root.getRight(), node);
}
}
C/C++と違い、Javaでは以下のようなエラーが発生します。
This method must return a result of type BSTreeNode<T>
関数の最後の行で値を返すように強制される。
自分の関数のコンテキストで修正するにはどうしたらいいですか?
どのように解決するのですか?
あなたの関数は、すべての可能な状況に対する戻り値を持っていません。あなたは持っています。
if (null)...
if (less than root)...
else ( if ...)
else (no return!)
nullでなく、最後のelseに行った場合は何を返すのでしょうか?何も返しません。
あなたはどちらか
return getParent...
をelse文の中に入れてください。
return null
関数の最後(if文やelse文の中ではない)で
このようなコードは、if文が値を返さなかった場合のカバーとしてよく見かけます。
public int getAnswer()
{
if (answer.equals("yes"))
return 0;
else if (answer.equals("no"))
return 1;
return null;
}
関連
-
[解決済み】不正な反射的アクセスとは?
-
[解決済み】デフォルトのキーストアファイルが存在しない?
-
[解決済み】java 'jar'が内部コマンドまたは外部コマンドとして認識されない。
-
[解決済み] java.sql.SQLException を取得しました。ResultSet が終了した後の操作は許可されません。
-
[解決済み] プライベートメソッド、フィールド、インナークラスを持つクラスをテストするにはどうすればよいですか?
-
[解決済み] Javaで配列に特定の値が含まれているかどうかを判断するにはどうすればよいですか?
-
[解決済み] Java で、あるコンストラクタを別のコンストラクタから呼び出すにはどうすればよいですか?
-
[解決済み] Javaで文字列値からenum値を取得する方法
-
[解決済み] JUnit 4のテストで、ある例外が投げられたことをどのように断言しますか?
-
[解決済み] ファイルの内容からJavaの文字列を作成するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] if / for / while 内で "Missing return statement" が発生する。
-
[解決済み】エラー:'if'のない'else'エラー
-
[解決済み】エラー「No enclosing instance of type Foo is accessible」の原因と修正方法について教えてください。
-
[解決済み】「java -cp」と「java -jar」の違い?
-
[解決済み】文字列中の � を置換する方法
-
[解決済み】Hibernateの例外「failed to lazily initialize a collection of role」の解決方法
-
[解決済み】Eclipseで「JUnitテストが見つかりませんでした。
-
[解決済み】Javaメソッドスタブ
-
[解決済み] Hide Utility Class Constructor : ユーティリティクラスはパブリックまたはデフォルトコンストラクタを持つべきではありません。
-
[解決済み】intがnullであるかどうかを確認する方法