二分木の高さを取得する関数を作成しようとしています。値の値をmaxi
出力すると期待どおりですが、関数が値を返すと、値は常に0になります。誰かが私がここで間違っていることを教えてもらえますか?
int treeHeight(tree *p)
{
static int maxi=0;
static int i=0;
if(p==NULL)
{
return maxi;
}
else
{
if(p->left!=NULL||p->right!=NULL)
{
i++;
}
else
{
i++;
if(maxi<i)
{
maxi=i;
}
}
treeHeight(p->left);
treeHeight(p->right);
i--;
}
}