剑指 Offer II 049. 从根节点到叶节点的路径数字之和
题目:
给定一个二叉树的根节点 root ,树中每个节点都存放有一个 0 到 9 之间的数字。
每条从根节点到叶节点的路径都代表一个数字:
例如,从根节点到叶节点的路径 1 -> 2 -> 3 表示数字 123 。
计算从根节点到叶节点生成的 所有数字之和 。
叶节点 是指没有子节点的节点。
解题思路:利用递归便利左右节点,当左右子节点都为空时,返回。
class Solution {
public:
int sumNumbers(TreeNode* root) {
return dfs(root,0);
}
int dfs(TreeNode*root,int path){
if(!root) return 0;
path=path*10+root->val;
if(root->left==nullptr &&root->right==nullptr){
return path;
}
return dfs(root->left,path)+dfs(root->right,path);
}
};