/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func sumOfLeftLeaves(root *TreeNode) int {
if root == nil {
return 0
}
return dfs(root)
}
func isLeaf(node *TreeNode) bool {
return node.Left == nil && node.Right == nil
}
func dfs(root *TreeNode) (ans int) {
if root.Left != nil {
if isLeaf(root.Left) {
ans += root.Left.Val
} else {
ans += dfs(root.Left)
}
}
if root.Right != nil && !isLeaf(root.Right) {
ans += dfs(root.Right)
}
return
}