Пример #1
0
/// 求二叉树中叶子结点的个数
/// 递归:如果二叉树为空,返回0
///       如果二叉树不为空且左右子树为空,返回1
///       如果二叉树不为空,且左右子树不同时为空,返回左子树中叶子结点的个数加上右子树中叶子结点个数
int GetLeafNodeNum(TreeNode* root)
{
	if(root == NULL)
		return 0;
	if(root->left == NULL && root->right == NULL)
		return 1;
	int numLeft = GetLeafNodeNum(root->left);
	int numRight = GetLeafNodeNum(root->right);
	return (numLeft +numRight);
}
Пример #2
0
Файл: avl.c Проект: luaohan/AVL
int GetLeafNodeNum(BSTree T)  
{  
    if(T == NULL) { 
        return 0;  
    }

    if(T->lchild == NULL && T->rchild == NULL) {
        return 1;
    }

    int numLeft = GetLeafNodeNum(T->lchild); // 宸﹀瓙鏍戜腑鍙惰妭鐐圭殑涓暟  
    int numRight = GetLeafNodeNum(T->rchild); // 鍙冲瓙鏍戜腑鍙惰妭鐐圭殑涓暟 

    return (numLeft + numRight);
}