Trouvez arbre binaire de hauteur

Je suis en train d'écrire une fonction permettant d'obtenir la hauteur d'un arbre binaire. Lorsque j'imprime la valeur de la maxi la valeur est ce que j'attends, mais lorsque la fonction renvoie la valeur, la valeur est toujours 0. Quelqu'un peut dire ce que j'ai fais de mal ici?

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--;
    }
}
Si vous ne disposez pas d'avertissements désactivé, le compilateur aurait dit que vous avez oublié.

OriginalL'auteur MRBULL93 | 2013-04-14