재귀를 사용하여 BST에서 노드 수를 찾으려고합니다. 여기 내 코드는재귀 C++을 사용하여 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보다 큰 값은 잘못된 대답을줍니다. 제발 내가 잘못한 것을 찾아 내도록 도와주세요. 감사!