递归解法:
(1)如果二叉树为空,返回0
(2)如果二叉树不为空且左右子树为空,返回1
(3)如果二叉树不为空且左右子树不同时为空,返回左子树中的叶子节点个数加上右子树中的叶子节点个数
int GetLeafNodeNum(BinaryTreeNode *pRoot)
{
if (pRoot == NULL)
return 0;
if (pRoot->lchild == NULL && pRoot->rchild == NULL)
return 1;
int numLeft = GetLeafNodeNum(pRoot->lchild);
int numRight = GetLeafNodeNum(pRoot->rchild);
return (numLeft + numRight);
}