给定二叉树的根节点 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;
}