1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| package main
import ( "strconv" "strings" )
func binaryTreePaths(root *TreeNode) []string { var result []string if root == nil { return result } traverse(root, []string{}, &result) return result }
func traverse(node *TreeNode, path []string, result *[]string) { path = append(path, strconv.Itoa(node.Val))
if node.Left == nil && node.Right == nil { *result = append(*result, strings.Join(path, "->")) return }
if node.Left != nil { traverse(node.Left, append([]string{}, path...), result) } if node.Right != nil { traverse(node.Right, append([]string{}, path...), result) } }
|