来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/sum-of-left-leaves 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

给定二叉树的根节点 root ,返回所有左叶子之和。

解答

搞清楚左叶子的定义,是 left 对应的节点,并且无子节点

  1. /**
  2. * Definition for a binary tree node.
  3. * function TreeNode(val, left, right) {
  4. * this.val = (val===undefined ? 0 : val)
  5. * this.left = (left===undefined ? null : left)
  6. * this.right = (right===undefined ? null : right)
  7. * }
  8. */
  9. /**
  10. * @param {TreeNode} root
  11. * @return {number}
  12. */
  13. var sumOfLeftLeaves = function(root) {
  14. let ret = 0;
  15. function traverse (node, isLeftNode) {
  16. if (!node) return;
  17. if (isLeftNode && !node.left && !node.right) {
  18. ret += node.val
  19. }
  20. node.left && traverse(node.left, true);
  21. node.right && traverse(node.right);
  22. }
  23. traverse(root);
  24. return ret;
  25. };