import ( "strconv" ) /** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */ func binaryTreePaths(root *TreeNode) (paths []string) { if root == nil { return } traversalPaths(root, "", &paths) return } func traversalPaths(node *TreeNode, path string, paths *[]string) { path += "->" + strconv.Itoa(node.Val) if node.Left != nil { traversalPaths(node.Left, path, paths) } if node.Right != nil { traversalPaths(node.Right, path, paths) } if node.Left == nil && node.Right == nil { *paths = append(*paths, path[2:]) } }