美文网首页
Leetcode 129. 求根到叶子节点数字之和

Leetcode 129. 求根到叶子节点数字之和

作者: LonnieQ | 来源:发表于2020-03-28 00:24 被阅读0次

    题目

    给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字。

    例如,从根到叶子节点路径 1->2->3 代表数字 123。

    计算从根到叶子节点生成的所有数字之和。

    说明: 叶子节点是指没有子节点的节点。

    示例 1:

    输入: [1,2,3]
        1
       / \
      2   3
    输出: 25
    

    解释:
    从根到叶子节点路径 1->2 代表数字 12.
    从根到叶子节点路径 1->3 代表数字 13.
    因此,数字总和 = 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.

    C++代码

    static const auto _ = [](){
        ios::sync_with_stdio(0);
        cin.tie(0);
        return 0;
    }();
    class Solution {
    public:
        int sum = 0;
        int sumNumbers(TreeNode* root) {
            dfs(root, 0);
            return sum;
        }
        void dfs(TreeNode * node, int value) {
            if (node == NULL) return;
            int total = value * 10 + node->val;
            dfs(node->left, total);
            dfs(node->right, total);
            if (node->left == NULL && node->right == NULL)  sum += total;
        }
    };
    

    成绩

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/sum-root-to-leaf-numbers
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    相关文章

      网友评论

          本文标题:Leetcode 129. 求根到叶子节点数字之和

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