二叉搜索树节点计数
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 );
}
相关文章:
- C++二叉搜索树模板从函数返回节点
- 没有从"树节点"到"树节点*"的可行转换
- 二叉搜索树使用最常用的节点来打印出某些语句
- 返回二叉搜索树特定级别的节点数的函数
- 无法打印完整的二叉搜索树,因为我从最低节点向后迭代的逻辑有缺陷
- 使用二进制搜索树中的迭代器对象访问左侧节点
- C++ Eclipse:二叉搜索树节点>数据=变量似乎不起作用
- 删除节点方法实际上不会删除二叉搜索树中的节点.C++
- 在C++中实现二叉搜索树,搜索不起作用.尝试打印节点的元素会导致输出崩溃
- 二叉搜索树按级别递归C++打印节点
- 插入到二叉搜索树中.节点替换
- 如何替换二叉搜索树中的节点
- C++ 从二叉搜索树中删除具有两个子节点的特定节点
- 检查节点是否是二进制搜索树的根
- 在二进制搜索树中删除节点
- 如何从二进制搜索树中删除节点
- 从C++二进制搜索树中删除一个节点(类而非结构)
- 从基于矢量的二叉搜索树中删除节点的最佳方法
- 为什么我的原始二叉搜索树被修改,即使我在另一个节点中复制了根节点
- 计算每个子树(二进制搜索树)具有特定属性的叶子的数量