404.sum-of-left-leaves.go 536 B

123456789101112131415161718192021222324252627282930
  1. /**
  2. * Definition for a binary tree node.
  3. * type TreeNode struct {
  4. * Val int
  5. * Left *TreeNode
  6. * Right *TreeNode
  7. * }
  8. */
  9. func sumOfLeftLeaves(root *TreeNode) int {
  10. if root == nil {
  11. return 0
  12. }
  13. return sumRecurse(root, false)
  14. }
  15. func sumRecurse(root *TreeNode, isLeft bool) (sum int) {
  16. if root.Left == nil && root.Right == nil {
  17. if isLeft {
  18. return root.Val
  19. }
  20. return
  21. }
  22. if root.Left != nil {
  23. sum += sumRecurse(root.Left, true)
  24. }
  25. if root.Right != nil {
  26. sum += sumRecurse(root.Right, false)
  27. }
  28. return
  29. }