404. Sum of Left Leaves solution records, 404 leaves
Description:
Find the sum of all left leaves in a given binary tree.
Example:
3 / \ 9 20 / \ 15 7There are two left leaves in the binary tree, with values 9 and 15 respectively. Return 24.
Solution:
Use recursion to traverse the binary tree, determine whether it is the left leaf of the last branch, and then add the left leaf of all the last branch (do not forget to consider the case of Null Pointer)
Code:
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 // when the input is null, 12 {13 return 0; 14} 15 int leftLeavesSum = 0; 16 if (root-> left) 17 {18 if (! Root-> left &&! Root-> left-> right) 19 // the condition for the end, that is, when the left leaf of the Branch is 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}
Solution gains:
The use of the C-language linked list is still not good enough, and more exercises are required.