给定二叉树的根节点 root ,返回所有左叶子之和
输入: root = [3,9,20,null,null,15,7]
输出: 24
解释: 在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24
示例 2:
输入: root = [1]
输出: 0
这都题目用递归的方法就可以解决
思路就是如果是一颗空二叉树 我直接就返回0
如果不是空树
我要利用与运算符来判断一下 左子树是不是为空 左子树的左子树是不是为空以及左子树的右子树是否为空 然后定义一个SUM用于计算数据 最后递归写出来就解决本题了
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
int sumOfLeftLeaves(struct TreeNode* root){
if(root==NULL)
{
return 0;
}
int sum=0;
if(root->left!=NULL&&root->left->left==NULL&&root->left->right==NULL)
{
sum+=root->left->val;
}
sum+=sumOfLeftLeaves(root->left);
sum+=sumOfLeftLeaves(root->right);
return sum;
}