1.第一看根结点是否为空,为空则返回0,没有叶子。
2.根结点不为空的情况下,看根结点的左孩子结点是否是叶子结点,是就把其值并入sum.
3.根结点不为空的情况下,如果根结点的左孩子不是叶子结点,而是空结点,或者只有左孩子结点,或者只有右孩子结点,或者有2个孩子结点,就递归左右子树求和
int sumOfLeftLeaves(struct TreeNode* root ) { if(root == NULL) return 0; int sum = 0; if(root->left && root->left->left == NULL && root->left->right == NULL) sum += root->left->val; sum += sumOfLeftLeaves(root->left) + sumOfLeftLeaves(root->right); return sum; }