计算给定二叉树的所有左叶子之和。
示例:
3
/ \
9 20
/ \
15 7
在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24
解题思路
通过递归遍历,查找所有左叶子
代码
// 404. 左叶子之和
func sumOfLeftLeaves(_ root: TreeNode?) -> Int {
var ans = 0
func dfs(_ root: TreeNode?) {
guard let root = root else {
return
}
if let right = root.right {
dfs(right)
}
if let left = root.left, left.left == nil && left.right == nil {
ans += left.val
return
}
dfs(root.left)
}
dfs(root)
return ans
}