404. Sum of Left Leaves
Difficulty: Easy
Topics: Tree, Depth-First Search, Breadth-First Search, Binary Tree
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
Solution:
We can implement a solution using recursion. Given the constraints and requirements, we will define a function to sum the values of all left leaves in a binary tree.
Define the Binary Tree Node Structure: Since PHP 5.6 doesn’t support classes with properties as easily, we use arrays to represent the tree nodes.
Recursive Function: Implement a recursive function to traverse the tree and sum the values of left leaves.
Let's implement this solution in PHP: 404. Sum of Left Leaves
<?php // Definition for a binary tree node. class TreeNode { public $val = null; public $left = null; public $right = null; public function __construct($val = 0, $left = null, $right = null) { $this->val = $val; $this->left = $left; $this->right = $right; } } // Define a tree node as an associative array for simplicity // ['val' => value, 'left' => left_child, 'right' => right_child] // Function to compute the sum of left leaves function sumOfLeftLeaves($root) { ... ... ... /** * go to ./solution.php */ } // Example usage: // Create the binary tree [3,9,20,null,null,15,7] $root = new TreeNode(3); $root->left = new TreeNode(9); $root->right = new TreeNode(20); $root->right->left = new TreeNode(15); $root->right->right = new TreeNode(7); echo sumOfLeftLeaves($root); // Output: 24 // For a single node tree [1] $root2 = new TreeNode(1); echo sumOfLeftLeaves($root2); // Output: 0 ?> Explanation:
-
Tree Node Definition:
- The
createNodefunction creates a node with a value and optional left and right children.
- The
-
Sum of Left Leaves Function:
- The
sumOfLeftLeavesfunction recursively traverses the tree. - It checks if the left child exists and if it's a leaf (i.e., it has no children). If so, it adds the value of this leaf to the sum.
- It then recursively processes the right child to account for any left leaves that might be in the right subtree.
- The
-
Example Usage:
- For the given tree examples, the function calculates the sum of all left leaves correctly.
Complexity:
- Time Complexity: O(n), where n is the number of nodes in the tree, as each node is visited exactly once.
- Space Complexity: O(h), where h is the height of the tree, due to recursion stack space.
Contact Links
If you found this series helpful, please consider giving the repository a star on GitHub or sharing the post on your favorite social networks 😍. Your support would mean a lot to me!
If you want more helpful content like this, feel free to follow me:

Top comments (0)