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.
 1 /**
 2  * Definition for a binary tree node.
 3  * public class TreeNode {
 4  *     int val;
 5  *     TreeNode left;
 6  *     TreeNode right;
 7  *     TreeNode(int x) { val = x; }
 8  * }
 9  */
10 public class Solution {
11     public int sumOfLeftLeaves(TreeNode root) {
12         int[] total = new int[1];
13         helper(root, false, total);
14         return total[0];
15     }
16     
17     void helper(TreeNode root, boolean isLeft, int[] total) {
18         if (root == null) return;
19         if (root.left == null && root.right == null) {
20             if (isLeft) {
21                 total[0] += root.val;
22             }
23             return;
24         } 
25         
26         helper(root.left, true, total);
27         helper(root.right, false, total);
28         
29     }
30 }

 

posted @ 2016-12-02 05:56  北叶青藤  阅读(220)  评论(0编辑  收藏  举报