/** * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */ class Solution { public: /** * * @param root TreeNode类 * @return int整型 */ int sumNumbers(TreeNode* root, int val = 0) { if (!root) return 0; val = val * 10 + root->val; if (!root->left && !root->right) { return val; } return sumNumbers(root->left, val) + sumNumbers(root->right, val); } };
思路:递归。
将到当前节点为止累积的数作为参数val传递下去,直到达到叶子节点时,返回该val。