1.求二叉树中叶子节点的个数
(1)如果二叉树为空,返回0 ;
(2)如果二叉树不为空且左右子树为空,返回1;
(3)如果二叉树不为空,且左右子树不同时为空,返回左子树中叶子节点个数加上右子树中叶子节点个数 。
2.求二叉树中第k层的节点个数
(1)若树为空或k小于1或k大于树的高度,则返回0;
(2)若k=1,则表示第一层即为根节点个数,即返回1;
(3)如果不是上两种情况,则返回左子树中的第k层节点个数加上右子树中的第k层节点个数。
template<class T>
struct BinaryTreeNode
{
BinaryTreeNode(const T& data)
:_data(data)
,_pLeft(NULL)
,_pRight(NULL)
{}
T _data;
BinaryTreeNode<T>* _pLeft;
BinaryTreeNode&