【发布时间】:2017-08-22 18:33:04
【问题描述】:
我正在尝试使用递归查找 BST 中的节点数。这是我的代码
struct Node{
int key;
struct Node* left;
struct Node* right;
Node(){
int key = 0;
struct Node* left = nullptr;
struct Node* right = nullptr;
}
};
src_root 是树的根节点的地址。
int BST::countNodes(Node* src_root, int sum){
if((src_root==root && src_root==nullptr) || src_root==nullptr)
return 0;
else if(src_root->left==nullptr || src_root->right==nullptr)
return sum;
return countNodes(src_root->left, sum + 1) + countNodes(src_root->right, sum + 1) + 1;
}
但是,我的代码似乎只有在有 3 个节点时才有效。任何大于 3 的都给出错误答案。请帮我找出它有什么问题。谢谢!
【问题讨论】:
标签: recursion binary-search-tree