# 404. Sum of Left Leaves 解题记录

2017-11-17 08:06:21来源:cnblogs.com作者:宵夜0000人点击

## 题目描述：

Find the sum of all left leaves in a given binary tree.

## 例子：

`    3   / /  9  20    /  /   15   7There are two left leaves in the binary tree, with values 9 and 15 respectively. Return 24.`

## 代码：

` 1 /** 2  * Definition for a binary tree node. 3  * struct TreeNode { 4  *     int val; 5  *     struct TreeNode *left; 6  *     struct TreeNode *right; 7  * }; 8  */ 9 int sumOfLeftLeaves(struct TreeNode* root) {10     if (!root)11     //输入为空指针时12     {13         return 0;14     }15     int leftLeavesSum = 0;16     if (root->left)17     {18         if (!root->left->left && !root->left->right)19         //结束的条件也就是末枝的左子叶时20         {21             leftLeavesSum += root->left->val;22         }23         else24         {25                 leftLeavesSum += sumOfLeftLeaves(root->left);26             }27         }28     if (root->right)29         {30             leftLeavesSum += sumOfLeftLeaves(root->right);31         }32     return leftLeavesSum;33 }`