求二叉树叶子数?

来源:百度知道 编辑:UC知道 时间:2024/09/28 08:14:56
编写一个算法,统计二叉树的叶子数!

有懂得的给写一下吗!初接触树,不懂如何写也!
好像没有统计出数目呢,???

int Number(treeNode * p) //p为所求二叉树的根结点
{
if( p == NULL)
{
return 0;
}
else if( p->Left == NULL && p->Right == NULL)
{
return 1;
}
else
{
return Number(p->Left) + Number(p->Right)
}
}
这里有个例子你可以参考一下:http://zhidao.baidu.com/question/27006637.html?fr=qrl

struct _treeNode
{
struct _treeNode *Left;//左子树
struct _treeNode *Right;//右子树
//其他数据
}treeNode;

int Number(treeNode * p) //p为所求二叉树的根结点
{
if( p == NULL)
{
return 0;
}
else if( p->Left == NULL && p->Right == NULL)
{
return 1;
}
else
{
return Number(p->Left) + Number(p->Right);
}
}

用递归方法做,将二叉树结点定义如下:
typedef struct node
{
int data;
struct node *lchild;
struc