题意:求二叉树所有根到叶子组成的数字之和。
题解:DFS。
class Solution {
public:
int ans;
void dfs(int num,TreeNode* root)
{
if(root->left == NULL && root->right == NULL)
ans += num * 10 + root->val;
if(root->left != NULL)
dfs(num * 10 + root->val,root->left);
if(root->right != NULL)
dfs(num * 10 + root->val,root->right);
}
int sumNumbers(TreeNode* root) {
ans = 0;
if(root == NULL) return ans;
dfs(0,root);
return ans;
}
};