1 题目
给定二叉树的根节点 root ,返回所有左叶子之和。
2 解析
一个节点为「左叶子」节点,当且仅当它是某个节点的左子节点,并且它是一个叶子结点。因此我们可以考虑对整棵树进行遍历,当我们遍历到节点 \textit{node}node 时,如果它的左子节点是一个叶子结点,那么就将它的左子节点的值累加计入答案。
3 Python实现
class Solution:
def sumOfLeftLeaves(self, root: Optional[TreeNode]) -> int:
isLeafNode = lambda node:not node.left and not node.right
def dfs(r):
ans = 0
if r.left:
ans +=r.left.val if isLeafNode(r.left) else dfs(r.left)
if r.right and not isLeafNode(r.right):
ans+=dfs(r.right)
return ans
return dfs(root) if root else 0