左叶子之和
题目
给定二叉树的根节点 root ,返回所有左叶子之和。
示例 1:

输入: root = [3,9,20,null,null,15,7]
输出: 24
解释: 在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24
示例 2:
输入: root = [1]
输出: 0
思路
- 重点在于判断一个节点是不是左叶子,判断条件只能在其父节点上确定,所以在其父节点的时候就要做出判断
代码
class Solution {
public:
int sum;
void leftsum(TreeNode* cur){
if(cur==NULL){
return;
}
if(cur->left==NULL&&cur->right==NULL){
return;
}
//在一个节点的父节点判断该节点是不是左叶子
if(cur->left!=NULL&&cur->left->left==NULL&&cur->left->right==NULL){
sum+=cur->left->val;
}
if(cur->left){
leftsum(cur->left);
}
if(cur->right){
leftsum(cur->right);
}
return;
}
int sumOfLeftLeaves(TreeNode* root) {
sum=0;
leftsum(root);
return sum;
}
};

浙公网安备 33010602011771号