Question:
How to distribute candies in a binary tree using C++

Summary

Consider here, we have to figure out the minimum number of moves required where every node has exactly one candy. 


Let’s assume:

Method- solve and distributeCandy


Solution


//User function Template for C++


/*

struct Node {

int key;

Node *left, *right;

};

*/


class Solution{

    public:

    // int moves = 0;

    

    // int solve(Node* root){

        

    //     if(root==NULL) return 0;

        

    //     int left = solve(root->left);

    //     int right = solve(root->right);

        

    //     int k =  left + right;

        

    //     int reqMove = root->key + k - 1; 

        

    //     moves+= abs(reqMove);

        

    //     return reqMove;

    // }


    // int distributeCandy(Node* root){

        

    //     if(root==NULL) return 0;

        

    //     int n = solve(root);

    //     return moves;

    // }

    

     int solve(Node* root, int &moves){

        if(root == NULL)

        {

            return 0;

        }

        

        int left = solve(root -> left, moves);

        int right = solve(root -> right, moves);

        

        moves = moves + abs(left) + abs(right);

        

        return root->key  -1 + left + right;

    }

    int distributeCandy(Node* root) {

        int moves = 0;

        solve(root, moves);

        return moves;

    }

};


Answered by: >shreyansho85v

Credit:> >GeekforGeeks


Suggested blogs:

>How to configure python in jmeter?

>How to mock a constant value in Python?

>Creating a pivot table by 6 month interval rather than year

>How to Install mariaDB client efficiently inside docker?

>Can I call an API to find out the random seed in Python `hash()` function?

>How remove residual lines after merge two regions using Geopandas in python?


Submit
0 Answers

What Our Clients Say About Us

Client satisfaction is our ultimate goal. Here are some kind words of our precious clients they have used to express their satisfaction with our service.

Why Choose Us ?

We endow businesses with flexible engagement models based on their unique needs. Our strength lies in state-of-the-art technology and affordable consulting services. Try us for fast POCs, full-fledged applications, or technology consulting. Always available for your service.