LeetCode 129
https://leetcode.cn/problems/sum-root-to-leaf-numbers/description/
难度:中等
使用参数记录路径之和,当当前节点为叶子节点时更新答案,并处理节点为空的情况。
时间复杂度:O(n),其中 n 为二叉树的节点个数。
空间复杂度:O(n)。最坏情况下,二叉树退化成一条链,递归需要 O(n) 的栈空间。
class Solution {
public:
int sumNumbers(TreeNode* root) {
int ans = 0;
auto dfs = [&](auto &&dfs, TreeNode* node, int path) {
if (node == nullptr) {
return;
}
path = path * 10 + node->val;
if (node->left == node->right) {
ans += path;
return;
}
dfs(dfs, node->left, path);
dfs(dfs, node->right, path);
};
dfs(dfs, root, 0);
return ans;
}
};