题目链接:https://leetcode-cn.com/problems/sum-of-left-leaves/
难度:简单

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

题解

  1. # Definition for a binary tree node.
  2. # class TreeNode:
  3. # def __init__(self, val=0, left=None, right=None):
  4. # self.val = val
  5. # self.left = left
  6. # self.right = right
  7. class Solution:
  8. def sumOfLeftLeaves(self, root: Optional[TreeNode]) -> int:
  9. def dfs(root, is_left_node=False):
  10. ret = 0
  11. if root is None:
  12. return ret
  13. if is_left_node and root.left is None and root.right is None:
  14. ret += root.val
  15. if root.left:
  16. ret += dfs(root.left, True)
  17. if root.right:
  18. ret += dfs(root.right, False)
  19. return ret
  20. if root is None:
  21. return 0
  22. return dfs(root)