404. Sum of Left Leaves
Given the root
of a binary tree, return the sum of all left leaves.
A leaf is a node with no children. A left leaf is a leaf that is the left child of another node.
Example 1:
Input: root = [3,9,20,null,null,15,7]
Output: 24
Explanation: There are two left leaves in the binary tree, with values 9 and 15 respectively.
Example 2:
Input: root = [1]
Output: 0
Approach
Base Case
If root
is NULL
, return immediately.
Processing Left Leaf Nodes
-
Check if
root
has aleft child
(root->left != NULL)
.- If the left child is a leaf (both left and right are NULL), add its value to sum.
-
Recursively call
sumOfLeftLeaves(root->left)
to process the left subtree. -
Recursively call
sumOfLeftLeaves(root->right)
to process the right subtree.
Code
Click to open
class Solution {
public:
int sum;
int sumOfLeftLeaves(TreeNode* root) {
if (root != NULL) {
if (root->left != NULL) {
if (root->left->left == NULL && root->left->right == NULL)
sum += root->left->val;
}
sumOfLeftLeaves(root->left);
sumOfLeftLeaves(root->right);
}
return sum;
}
};
💡
Time Complexity: O(N) | Space Complexity: O(N)