/// 求二叉树中叶子结点的个数 /// 递归:如果二叉树为空,返回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); }
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); }