2017-05-04 14 views
-1

バイナリ検索ツリーでノードを数えるという宿題がありましたが、グローバル変数または関数パラメータを使用することはできません。私は、グローバル変数と関数のパラメータでそれを行う方法を知っていますが、私はローカル変数を使用することができないので、それなしでそれを行う方法を知らない。グローバル変数または関数パラメータを持たない再帰呼び出し

今私のコード:

int count() const 
     { 
      int st = 1; 
      if (left != NULL) { 
       st++; 
       left->count(); 
      } 
      if (right != NULL) { 
       st++; 
       right->count(); 
      } 
      return st; 
     } 
+0

あなたがに許可されていませんグローバル変数またはローカル関数変数を使用しますか? – sithereal

答えて

2

あなただけのそれぞれのサブツリー(使用可能な場合)への再帰呼び出しによって提供さ返り値を合計できます

int count() const 
    { 
     if (left != NULL && right != NULL) 
      return 1+left->count()+right->count(); 
     else if (left != NULL) 
      return 1+left->count(); 
     else if (right != NULL) 
      return 1+right->count(); 
     else 
      return 1; 
    } 
+0

それがそれを解決しました。 – hypr2

関連する問題