美文网首页
37. Sum Root to Leaf Numbers FRO

37. Sum Root to Leaf Numbers FRO

作者: 时光杂货店 | 来源:发表于2017-03-17 20:15 被阅读11次

    题目

    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 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 sumNumbers(TreeNode *root) {
           return  sumNumberUtil(root,0);
            
        }
        // preorder
        int sumNumberUtil(TreeNode* node, int val)
        {
            if(node==NULL)
            return 0;
            
            val= val*10+node->val;
            if(node->left==NULL && node->right==NULL)
            {
                return val;
            }
            
            return sumNumberUtil(node->left,val)+sumNumberUtil(node->right, val);
        }
    };
    

    相关文章

      网友评论

          本文标题:37. Sum Root to Leaf Numbers FRO

          本文链接:https://www.haomeiwen.com/subject/nydynttx.html