257.binary-tree-paths.go 619 B

1234567891011121314151617181920212223242526272829303132
  1. import (
  2. "strconv"
  3. )
  4. /**
  5. * Definition for a binary tree node.
  6. * type TreeNode struct {
  7. * Val int
  8. * Left *TreeNode
  9. * Right *TreeNode
  10. * }
  11. */
  12. func binaryTreePaths(root *TreeNode) (paths []string) {
  13. if root == nil {
  14. return
  15. }
  16. traversalPaths(root, "", &paths)
  17. return
  18. }
  19. func traversalPaths(node *TreeNode, path string, paths *[]string) {
  20. path += "->" + strconv.Itoa(node.Val)
  21. if node.Left != nil {
  22. traversalPaths(node.Left, path, paths)
  23. }
  24. if node.Right != nil {
  25. traversalPaths(node.Right, path, paths)
  26. }
  27. if node.Left == nil && node.Right == nil {
  28. *paths = append(*paths, path[2:])
  29. }
  30. }