使用全局变量和指针变量之间的区别?

时间:2018-07-26 14:09:01

标签: c algorithm data-structures tree binary-tree

我一直在编码一个在祖先和节点之间寻找最大值的二叉树问题,我已经用两种方式对其进行了编码,但是它提供了两种不同的答案,如何?

int res=INT_MIN;

int maxDiff(Node* root){
 if(root==NULL){
    return INT_MAX;
 }else if(root->left==NULL && root->right==NULL){
    return root->data;  
 }else{
    int mini = min(maxDiff(root->left),maxDiff(root->right));
    res = max(res,root->data-mini);
    return min(mini,root->data);
 }  
}

Print(res); //Printing ans

另一个是....

int helpmaxDiff(Node* root,int *res){
 if(root==NULL){
    return INT_MAX;
 }else if(root->left==NULL && root->right==NULL){
    return root->data;  
 }else{
    int mini = min(helpmaxDiff(root->left,res),helpmaxDiff(root->right,res));
    *res = max(*res,(root->data)-mini);
    return min(mini,root->data);
 }  
}

int maxDiff(Node* root)
{
 int res=INT_MIN;
 // Your code here 
 helpmaxDiff(root,&res);
 print(res); //printing res
}

https://practice.geeksforgeeks.org/problems/maximum-difference-between-node-and-its-ancestor/1

这是我正在编码的问题。
我发现以res为全局变量的函数失败,而以res为指针变量的函数(也作为参数)运行良好。

0 个答案:

没有答案