[LeetCode] 404. Sum of Left Leaves
Find the sum of all left leaves in a given binary tree.
Example:
3 / \ 9 20 / \ 15 7 There are two left leaves in the binary tree, with values 9 and 15 respectively. Return 24.
Thought process:
Recursively add the sum of left leaves of root.left and root.right.
Solution:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class Solution { public int sumOfLeftLeaves(TreeNode root) { if (root == null) { return 0; } int sum = 0; if (root.left != null) { if (root.left.left == null && root.left.right == null) { sum += root.left.val; } else { sum += sumOfLeftLeaves(root.left); } } if (root.right != null && (root.right.left != null || root.right.right != null)) { sum += sumOfLeftLeaves(root.right); } return sum; } } |
Time complexity: O(n).
Comments
Post a Comment