二叉树叶节点和

  • 递归的同时计算就可以了
class Solution {
public:
    int sumNumbers(TreeNode* root) {
        return getSum(root, 0);
    }

    int getSum(TreeNode * root, int val){
        if(!root)
            return 0;
        if(!root->left && !root->right) //注意只有叶子节点才会有值
            return val * 10 + root->val;
        return getSum(root->left, val * 10 + root->val) + 
                    getSum(root->right, val * 10 + root->val);
    }
};

你可能感兴趣的:(算法,算法)