/** * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} * }; */ class Solution { public: //递归调用,保证进入的节点非空,是叶节点则计入答案; int ans=0; int sumNumbers(TreeNode* root) { if(!root)return 0; dfs(root, 0); return ans; } void dfs(TreeNode* node,int curr){ curr = curr*10 + node->val; if(node->right){ dfs(node->right, curr); } if(node->left){ dfs(node->left, curr); } if(!node->left && !node->right){ ans += curr; return; } } };