链接: https://oj.leetcode.com/problems/sum-root-to-leaf-numbers/
dfs..sum保存中间结果.每计算完一条路径,就更新ans
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: int ans; int sumNumbers(TreeNode *root) { ans=0; if(root==NULL) return 0; dfs(root,root->val); return ans; } void dfs(TreeNode *root,int sum) { if(root->left==NULL&&root->right==NULL) { ans+=sum; return ; } if(root->left) dfs(root->left,sum*10+root->left->val); if(root->right) dfs(root->right,sum*10+root->right->val); } };
天下武功,唯快不破