基本思想:
叶子结点的特点是没有左孩子也没有右孩子,运用递归查找满足的条件的叶子结点数。
验证:
1次(k=3)判断非空,k不为1;
2次(k=2)递归判断左孩子非空,k不为-1,右孩子非空,k不为-1;
3次(k=1)递归,判断左孩子的左孩子满足k=1且无子女,返回1;左孩子的右孩子满足,返回1;右孩子的左孩子满足,返回1;最终返回3。
int Kleaf(BiTree T,int k){
if(T==null||k<1)
return 0;
else if(k==1&&T->lchild==null&&T->rchild==null)
return 1;
else
return Kleaf(T->lchild,k-1)+Kleaf(T->rchild,k-1);
}