/// 求二叉树第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); }
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); }