求根结点到叶节点数字之和

求根结点到叶节点数字之和

 

 

详细思路

dfs,遍历一遍,在过程中积累路径和,到根结点更新答案   详细思路 dfs,仅仅只是遍历,ans,ans1仅仅只是携带数据,和递归逻辑无关 ans1遍历中积累路径和 ans根结点积累ans1,全局唯一所以用&
class Solution {
public:
    int sumNumbers(TreeNode* root) {
        int ans=0,ans1=0;
        dfs(root,ans,ans1);
        return ans;
    }
    void dfs(TreeNode*root,int &ans,int ans1){
        if(!root->left&&!root->right){
            ans1=ans1*10+root->val;
            ans+=ans1;
            return;
        }
        ans1=ans1*10+root->val;
        if(root->left)dfs(root->left,ans,ans1);
        if(root->right)dfs(root->right,ans,ans1);
    }
};
踩过的坑 本想着返回值直接得到root树所有。。。。。返回值不能利用,我想要的答案只是在根结点用到 不想着利用返回值,而是多在遍历中更新答案,或者计算,也很好   不能到的空节点,最多到达根结点,常见,if(root->left)才dfs  
上一篇:单词拆分II


下一篇:子集II