我正在尝试找到两个对,它们的总和与二进制搜索树中给定的数字相同,但是,我没有得到正确的答案,请有人帮我。我的代码如下:

void BST::find_sum(node * root1,node * root2,int sum)
{
if(root1==NULL)
    return;
if(root2==NULL)
{
    return;
}

 if((root1->data+root2->data)==sum)
 {
     if(root1==root2)
         return;
     cout<<"\t "<<root1->data<<" + "<<root2->data<<" = "<<sum;
     return;
 }

     find_sum(root1,root2->left,sum);
     find_sum(root1,root2->right,sum);

     return;

}

最佳答案

您可以尝试以下方法:

 find_sum(root1,root2->right,sum);
 find_sum(root1,root2->left,sum);

关于c++ - 如何在BST中找到两个总和等于给定值的对?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33451025/

10-12 15:05