计算二叉搜索树中的节点

时间:2014-05-04 11:40:18

标签: c++

我需要创建一个递归方法,该方法将二叉搜索树的根节点作为参数。然后,此递归方法将返回具有一个左后代的节点总数的int值。

int Tree::leftPtrCount(int count) {
    return leftPtrCountHelper(rootPtr, count);
}
int Tree::leftPtrCountHelper(TreeNode *node, int count){
    if (node == NULL)
        return 0;
    if (node->leftPtr != NULL && node->rightPtr == NULL)
        count++;
    else
        return leftPtrCountHelper(node->leftPtr, count) + leftPtrCountHelper(node->rightPtr, count);
}

1 个答案:

答案 0 :(得分:1)

如果我理解正确的分配,那么该功能将显示为

size_t Tree::leftPtrCountHelper( const TreeNode *node )
{
    if ( node == NULL ) return 0;
    return ( node->leftPtr != NULL && node->rightPtr == NULL ) +
             leftPtrCountHelper( node->leftPtr ) + 
             leftPtrCountHelper( node->rightPtr );
}