二分探索木における高さの求め方
2023-09-25 21:15:25
質問
私は誰かがバイナリ検索ツリーの高さを見つけるためにこのメソッドを作り直すのを助けることができればと思っていた。今のところ、私のコードは次のようになります。しかし、私が得ている答えは、実際の高さよりも1だけ大きいです。しかし、私が私の戻り値文から+1を削除すると、それは実際の高さよりも1だけ小さくなります。どんな助けでも大いに感謝します。
public int findHeight(){
if(this.isEmpty()){
return 0;
}
else{
TreeNode<T> node = root;
return findHeight(node);
}
}
private int findHeight(TreeNode<T> aNode){
int heightLeft = 0;
int heightRight = 0;
if(aNode.left!=null)
heightLeft = findHeight(aNode.left);
if(aNode.right!=null)
heightRight = findHeight(aNode.right);
if(heightLeft > heightRight){
return heightLeft+1;
}
else{
return heightRight+1;
}
}
どのように解決するのですか?
問題は、あなたのベースケースにあります。
"木の高さは、ルートから木の最深部のノードまでのパスの長さです。ノード (ルート) のみを持つ (根付きの) 木は、高さが 0 になります。 ウィキペディア
ノードがない場合は、0ではなく-1を返したい。 これは、最後に1を足しているからです。
つまり、ノードがない場合は-1を返し、+1を打ち消すわけです。
int findHeight(TreeNode<T> aNode) {
if (aNode == null) {
return -1;
}
int lefth = findHeight(aNode.left);
int righth = findHeight(aNode.right);
if (lefth > righth) {
return lefth + 1;
} else {
return righth + 1;
}
}
関連
-
[解決済み] 定数時間や対数時間よりも、nやnlog(n)の方が良いのでしょうか?
-
[解決済み] このHeld-Karp TSP Pseudocodeの説明をお願いします。
-
[解決済み] バックトラッキングとダイナミックプログラミングの違い
-
[解決済み] 隣接リスト表現の時間複雑性?
-
[解決済み] バックトラックと深さ優先探索の違いは何ですか?
-
[解決済み] あるアルゴリズムの計算量がO(log log n)になる原因は何でしょうか?
-
[解決済み】2分木と2分探索木の違いについて
-
[解決済み] ある問題がNP完全であることをどのように証明するか?
-
[解決済み] 重なり合う円の面積の合計
-
[解決済み] エラトステネスの篩アルゴリズムの時間複雑性
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Dijkstraのアルゴリズムが負の重みのエッジに対して機能しないのはなぜですか?
-
[解決済み】クイックソートとヒープソートの比較
-
[解決済み] アルゴリズム設計マニュアル』の解答はどこにあるのですか?[終了しました]
-
[解決済み] T(n) = 2T(n/2) + O(n) からO(nlogn)を得る方法
-
[解決済み] Bogosort (a.k.a Monkey Sort)よりも悪いソートアルゴリズムはあるのか?[クローズド]
-
[解決済み] 解いてみてください。T(n) = T(n-1) + n [重複] とする。
-
[解決済み] log(n!)=Θ(n-log(n))でしょうか?
-
[解決済み] Dijkstraのアルゴリズムによる負の重み付け
-
[解決済み] アルゴリズム設計マニュアル』の解答はどこにあるのですか?[クローズド]
-
[解決済み] トライ式と基幹トライ式のデータ構造の違いは何ですか?