[英]Counting nodes in binary search tree
我需要创建一个以二进制搜索树的根节点为参数的递归方法。 然后,此递归方法将返回具有一个左后代的节点总数的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);
}
如果我正确理解分配,则该函数将如下所示
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 );
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.