c++
class Solution {
public:
void bfs(TreeNode* root,int add,int &ans)
{
if(root==NULL){return;}
if(root->left==NULL && root->right == NULL)
{
add*=10;
add+=root->val;
ans+=add;
return;
}
if(root->left!=NULL)
{
bfs(root->left,add*10+root->val,ans);
}
if(root->right!=NULL)
{
bfs(root->right,add*10+root->val,ans);
}
}
int sumNumbers(TreeNode* root) {
int ans = 0;
bfs(root,0,ans);
return ans;
}
};
java
import java.util.*;
public class Solution {
public int ans = 0;
public int sumNumbers (TreeNode root) {
bfs(root,0);
return ans;
}
public int bfs(TreeNode root,int add)
{
if(root==null){return ans;}
if(root.left==null && root.right == null)
{
add=add*10;
add=add+root.val;
ans=ans+add;
return ans;
}
if(root.left!=null)
{
bfs(root.left,add*10+root.val);
}
if(root.right!=null)
{
bfs(root.right,add*10+root.val);
}
return ans;
}
}
python
class Solution:
def sumNumbers(self , root ):
def bfs(root,ans):
if not root:
return 0
ans = ans*10+root.val
if not root.left and not root.right:
return ans
return bfs(root.left,ans)+bfs(root.right,ans)
return bfs(root,0)

京公网安备 11010502036488号