递归解法:
(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);
}
本文介绍了一种使用递归方法计算二叉树中叶子节点数量的算法。详细步骤包括:若二叉树为空则返回0;若二叉树只有一个节点则返回1;否则递归计算左右子树的叶子节点数量并相加。
2283

被折叠的 条评论
为什么被折叠?



