Skip to content

M129.求根节点到叶节点数字之和

dfs, https://leetcode.cn/problems/sum-root-to-leaf-numbers/

思路:在遍历时,把当前路径代表的数字累计下去(上一层的值 × 10 + 当前节点值),到叶子节点时就把这条路径的数字加入总和。

cpp
class Solution {
public:
    int sumNumbers(TreeNode* root) {
        return dfs(root, 0);
    }

private:
    int dfs(TreeNode* node, int current) {
        if (!node) return 0;
        int val = current * 10 + node->val;
        if (!node->left && !node->right)  // 到达叶子
            return val;
        return dfs(node->left, val) + dfs(node->right, val);
    }
};