leetcode 129
递归解题,将节点值传入参数,随层数每次乘10相加,递归边界为空节点,返回0,对于叶子节点,返回结果和加上叶子值;然后分别递归左子树,右子树相加。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
class Solution { public:
int sumNumbers(TreeNode* root) { return helper(root, 0); }
private: int helper(TreeNode *root, int ret) { if(nullptr == root) return 0; if(nullptr == root->left && nullptr == root->right) { return ret * 10 + root->val; } else if(root->left) helper(root->left, ret * 10 + root->val); else if(root->right) helper(root->right, ret * 10 + root->val); } };
|