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

 


Constraints:


The number of nodes in the tree is in the range [1, 1000].

-1000 <= Node.val <= 1000


/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    public int sumOfLeftLeaves(TreeNode root) {
           if (root == null) return 0;

        int sum = 0;

        // Step 1: Check if left child exists and is a leaf
        if (root.left != null && isLeaf(root.left)) {
            sum += root.left.val;
        }

        // Step 2: Recurse on left and right subtrees
        sum += sumOfLeftLeaves(root.left);
        sum += sumOfLeftLeaves(root.right);

        return sum;
    }

    // Helper function to check if node is a leaf
    private boolean isLeaf(TreeNode node) {
        return node.left == null && node.right == null;
   
    }
}

Comments

Popular posts from this blog

Two Sum II - Input Array Is Sorted

Comparable Vs. Comparator in Java

Increasing Triplet Subsequence