来自大佬群主的第三题。
叶子节点是二叉树中没有子树的节点,所以我利用前序遍历,当遇到左子树与右子树都是NULL的情况时num++,即可得到叶子节点的个数,代码如下:
struct bitreenode
{
int data;
struct bitreenode *leftchild;
struct bitreenode *rightchild;
};
int num=0;
int LeafCount(bitreenode *root)
{
if(root==NULL)
{
return 0;
}
else
{
int i1=LeafCount(root->leftchild);
int i2=LeafCount(root->rightchild);
if(i1==0&&i2==0)
num++;
return 1;
}
}