示例#1
0
/// 求二叉树第K层的结点个数
/// 递归:如果二叉树为空或者k<1返回0
///       如果二叉树不为空且k == 1.返回1
///       如果二叉树不为空且k>1,返回左子树中k-1层的结点个数与右子树k-1层结点个数之和
int GetNodeNumKthLevel(TreeNode* root, int k)
{
	if(root == NULL || k < 1 )
		return 0;
	if(k = 1)
		return 1;
	int numLeft = GetNodeNumKthLevel(root->left,k-1);
	int numRight = GetNodeNumKthLevel(root->right,k-1);

	return (numLeft + numRight);
}
示例#2
0
文件: avl.c 项目: luaohan/AVL
int GetNodeNumKthLevel(BSTree T, int k)  
{  
    if( T == NULL || k < 1 ){ 
        return 0;  
    }

    if(k == 1){
        return 1;
    }

    int numLeft = GetNodeNumKthLevel(T->lchild, k-1); // 宸﹀瓙鏍戜腑k-1灞傜殑鑺傜偣涓暟  
    int numRight = GetNodeNumKthLevel(T->rchild, k-1); // 鍙冲瓙鏍戜腑k-1灞傜殑鑺傜偣涓暟  

    return (numLeft + numRight);  
}