题目
题目链接
. - 力扣(LeetCode)
题目描述
代码实现
class Solution {
public:int sumNumbers(TreeNode* root) {return _sumNumbers(root, 0);}int _sumNumbers(TreeNode* root, int preSum){preSum = preSum * 10 + root->val;if(root->left == nullptr && root->right == nullptr) return preSum;int ret = 0;if(root->left) ret += _sumNumbers(root->left, preSum);if(root->right) ret += _sumNumbers(root->right, preSum);return ret;}
};
思路分析
这里用到的是递归的思路。
1、这里我们设计的preSum参数用于返回每条路径的数值结果。
2、当遇见叶子节点就表示这条路径的数值结果已经拿完了,直接返回这个preSum。
3、再依次进入左子树和右子树拿到对应子树路径的数值。所有路径数值的总和都放在ret中,返回即可。