LeetCode_Sum Root to Leaf Numbers

Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a number.



An example is the root-to-leaf path 1->2->3 which represents the number 123.



Find the total sum of all root-to-leaf numbers.



For example,



    1

   / \

  2   3

The root-to-leaf path 1->2 represents the number 12.

The root-to-leaf path 1->3 represents the number 13.



Return the sum = 12 + 13 = 25.

  

/**

 * Definition for binary tree

 * struct TreeNode {

 *     int val;

 *     TreeNode *left;

 *     TreeNode *right;

 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}

 * };

 */

class Solution {

public:

     void solve(TreeNode *root)

    {

        if(root -> left == NULL && root ->right == NULL){

           sum += root->val;

           return;

        }

        if(root->left){

            root->left->val += root->val * 10;

            solve(root->left);

        }

        

        if(root->right){

            root->right->val += root->val * 10;

            solve(root->right);

        }

    }

    int sumNumbers(TreeNode *root) {

        // Start typing your C/C++ solution below

        // DO NOT write int main() function

        sum = 0;

        if(root == NULL) return sum;

        solve(root);

        return sum;

    }

int sum ;

};

 

你可能感兴趣的:(LeetCode)