Find the sum of all left leaves in a given binary tree.
Example:
| 12
 3
 4
 5
 6
 7
 
 |     3/ \
 9  20
 /  \
 15   7
 
 There are two left leaves in the binary tree, with values 9 and 15 respectively. Return 24.
 
 | 
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 
 | 
 
 
 
 
 
 
 
 class Solution {
 public int sumOfLeftLeaves(TreeNode root) {
 if (root == null)
 return 0;
 return helper(root, false);
 }
 
 public int helper(TreeNode root, boolean isLeft) {
 if (root == null)
 return 0;
 if (isLeft && root.left == null && root.right == null)
 return root.val;
 return helper(root.left, true) + helper(root.right, false);
 }
 }
 
 | 
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 
 | public int sumOfLeftLeaves(TreeNode<Integer> root) {int res = 0;
 if (root == null) return res;
 Stack<TreeNode<Integer>> stack = new Stack<>();
 while (root != null || !stack.isEmpty()) {
 while (root != null) {
 stack.push(root);
 root = root.right;
 }
 root = stack.pop();
 root = root.left;
 if (root != null && root.left == null && root.right == null) res += root.val;
 }
 return res;
 }
 
 |