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);
}
};