Monday, January 2, 2017

404. Sum of Left Leaves

Q:
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.

A:


/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
public class Solution {
    public int sumOfLeftLeaves(TreeNode root) {
        return helper(root,false);
    }
    private int helper(TreeNode root, boolean isLeftChild){
        if(root == null)
            return 0;
        if( (root.left == null) && (root.right == null) )
            return isLeftChild ? root.val : 0;
        return helper(root.left,true) + helper(root.right,false);
    }
} 

NOTE:
如果只有一个根节点,  返回0



No comments:

Post a Comment