DSA
Tree
Sum of Left Leaves

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:

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 a left 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)