统计二叉树中的叶子节点数

时间:2025-03-12 11:57:32

 

1.通过参数传递统计叶子节点

void CountLeaf(BiTree T,int & Count)
{//通过参数传递统计叶子节点
    if(T)
    {
        if((T->lchild==NULL)&&(T->rchild))
            Count++;//如果左右子树都为空,则为叶子节点,则叶子节点数加一
        else
        {   
            CountLeaf(T->lchild,Count);
            CountLeaf(T->rchild,Count);
        }  
    }
}

2.靠返回值返回叶子节点的个数,左子树的叶子节点个数+右子树叶子节点个数

int Countleaf(BiTree T)
{
    if((T->lchild==NULL)&&(T->rchild==NULL))
    {
        return 1;
    }
    else
    {
        m=Countleaf(T->lchild);
        n=Countleaf(T->rchild);
        return m+n;
    }
}

 

相关文章