二叉树根节点到叶子节点的所有路径和
class Solution {
public:
vector<int> oneroot;
vector<vector<int>> result;
int res = 0;
void dfs(TreeNode* root)
{
oneroot.push_back(root->val);
if (root->left)
{
dfs(root->left);
}
if (root->right)
{
dfs(root->right);
}
if (root->left == nullptr&&root->right == nullptr)
{
result.push_back(oneroot);
}
oneroot.pop_back();
}
int sumNumbers(TreeNode* root) {
if(root==nullptr)
return 0;
if (root->left == nullptr&&root->right == nullptr)
return root->val;
dfs(root);
int ressize = result.size();
int res0size = result[0].size();
for (int i = 0; i < ressize; ++i)
{
int onepathSize = result[i].size();
int onepathres = 0;
for (int j = 0; j <onepathSize; ++j)
{
onepathres += result[i][j] * pow(10, onepathSize - j - 1);
}
res += onepathres;
}
return res;
}
};