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.

Analyze

递归思路解题

/**
 * Definition for a binary tree node.
 * function TreeNode(val) {
 *     this.val = val;
 *     this.left = this.right = null;
 * }
 */
/**
 * @param {TreeNode} root
 * @return {number}
 */
var sumOfLeftLeaves = function(root) {
  if (!root) return 0
  if (root.left) {
    if (!root.left.left && !root.left.right) {
      return root.left.val + sumOfLeftLeaves(root.right)
    } else {
      return sumOfLeftLeaves(root.left) + sumOfLeftLeaves(root.right)
    }
  } else {
    return sumOfLeftLeaves(root.right)
  }
};