二叉树中左叶节点的总和

时间:2017-11-26 20:22:48

标签: c++ algorithm data-structures segmentation-fault binary-tree

这个解决方案显示了我的分段错误,虽然它适用于我尝试的所有树。任何人都可以帮我检测错误。 代码:

    /*Structure of the node of the binary tree is as
    struct Node
    {
        int data;
        struct Node* left;
        struct Node* right;
    };
    */
    // function should return the sum of all 
    // left leaf nodes
    int sum=0,i=1;
    Node* h;
    int leftLeafSum(Node* root)
    {
        if(i==1)
        {
           h=root;
           i--;
        }
        Node* temp=root;
        if((temp->left!=NULL)&&(temp->left->left==NULL)&&   (temp->left->right==NULL))
           sum+=temp->left->data;
        if(temp->left!=NULL)
           leftLeafSum(temp->left);
        if(temp->right!=NULL)
           leftLeafSum(temp->right);
        if(temp==h)
        {
           i=1;
           int s=sum;
           sum=0;
           return s;
        }
    }

0 个答案:

没有答案