2017-05-04 195 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