2017-02-26 5 views
2

私は非常にバイナリツリーと再帰に慣れています。私のプログラムはツリーの高さを見つけることですが、なぜ私のプログラムがうまくいかないのか混乱しています。木の深さを見つけるのですか?

struct Node { 
    int value; 
    Node *left; 
    Node *right; 
} 

int heightOfTree(Node node){ 
    if(node ==NULL) 
    { 
     return 0; 
    } 
    else 
    { 
     int lheight=heightOfTree(node->left); 
     int rheight = heightOfTree(node->right); 
     if(lheight>rheight) 
     { 
      return lheight; 
     } 
     else 
     { 
      return rheight; 
     } 
    } 
} 

オンラインで擬似コードを実行したので、私は自分で実装しました。コピーして貼り付けはしたくないからです。私は多くのノードを挿入しようとしましたが、私のプログラムを実行すると、常に0の高さが得られますか?あなたは各レベルでの高さをインクリメントする必要が

+3

ルートノードと1つのリーフノードを持つツリーを作成し、手作業でコードをステップ実行します。 – Blender

答えて

4
return lheight + 1; 

return rheight + 1; 

ありがとうございます。

関連する問題