给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字。
    例如,从根到叶子节点路径 1->2->3 代表数字 123
    计算从根到叶子节点生成的所有数字之和。
    说明: 叶子节点是指没有子节点的节点。
    示例 1:

    1. 输入: [1,2,3]
    2. 1
    3. / \
    4. 2 3
    5. 输出: 25
    6. 解释:
    7. 从根到叶子节点路径 1->2 代表数字 12.
    8. 从根到叶子节点路径 1->3 代表数字 13.
    9. 因此,数字总和 = 12 + 13 = 25.

    示例 2:

    输入: [4,9,0,5,1]
        4
       / \
      9   0
     / \
    5   1
    输出: 1026
    解释:
    从根到叶子节点路径 4->9->5 代表数字 495.
    从根到叶子节点路径 4->9->1 代表数字 491.
    从根到叶子节点路径 4->0 代表数字 40.
    因此,数字总和 = 495 + 491 + 40 = 1026.
    
    /**
     * Definition for a binary tree node.
     * struct TreeNode {
     *     int val;
     *     TreeNode *left;
     *     TreeNode *right;
     *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     * };
     */
    class Solution {
    public:
        int sum = 0;
        int sumNumbers(TreeNode* root) {
            sumDepthNumbers(root, 0);
            return sum;
        }
    
        void sumDepthNumbers(TreeNode* root, int value) {
            if(root == NULL){
                return ;
            }
            value = value * 10 + root->val;
            if(root->left == NULL && root->right == NULL){
                // cout<<value<<endl;
                sum += value;
                return ;
            }        
            sumDepthNumbers(root->left, value);
            sumDepthNumbers(root->right, value);
            return ;
        }
    };