折腾了半个晚上的题目,拿到题目第一想到的是递归,就开始balabala写,主要思想是用根节点*10+左孩子的sumNumbers,怎么都不运行成功,后来想起来这是类似深度搜索,根节点*10显然是错误的。
class Solution {
public:
int sumNumbers(TreeNode *root) {
return sumNumbers(root,0);
}
private:
int sumNumbers(TreeNode *root, int sum){
if(!root)
return 0;
else{
if(!root->left&&!root->right)
return sum*10+root->val;
return sumNumbers(root->left,sum*10+root->val)+sumNumbers(root->right,sum*10+root->val);
}
}
};