本体核心思想在于判断叶子结点是否为左叶子,判断条件有两个:
(1)此节点为其父节点的左孩子
(2)此节点为叶子结点
代码如下:
class Solution {
public:
void getSum(TreeNode* cur, int& sum){
if(cur == nullptr) return;
TreeNode* lnode = cur->left;
TreeNode* rnode = cur->right;
if(lnode){
if(lnode->left == nullptr && lnode->right == nullptr) sum += lnode->val;
getSum(lnode, sum);
}
if(rnode){
getSum(rnode, sum);
}
}
int sumOfLeftLeaves(TreeNode* root) {
int sum = 0;
getSum(root, sum);
return sum;
}
};