递归解法:
(1)如果二叉树为空或者K<1,返回0
(2)如果二叉树不为空且K=1,返回1
(3)如果二叉树不为空且K>1,返回左子树中K-1层的节点个数与右子树K-1层节点个数之和
int GetNodeNumKthLevel(BinaryTree *pRoot, int k )
{
if (pRoot == NULL || k < 1)
return 0;
if (k == 1)
return 1;
int numLeft = GetNodeNumKthLevel(pRoot->lchild, k - 1);
int numRight = GetNodeNumKthLevel(pRoot->rchild, k - 1);
return (numLeft + numRight);
}
本文介绍了一种使用递归算法来计算二叉树中第K层节点数量的方法。当二叉树为空或K小于1时返回0;若二叉树非空且K等于1,则返回1;若二叉树非空且K大于1,则返回左子树中K-1层的节点个数与右子树中K-1层的节点个数之和。

3849

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



