3

二分木の高さを取得する関数を作成しようとしています。値の値を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--;
    }
}
4

1 に答える 1