题目

26年5月23日(首刷看解)
func binaryTreePaths(root *TreeNode) []string {
var res []string
var path []int
var dfs func(*TreeNode)
dfs=func(root *TreeNode){
if root==nil{
return
}
path=append(path,root.Val)
if root.Left==nil&&root.Right==nil{
res=append(res,buildpath(path))
}
dfs(root.Left)
dfs(root.Right)
path=path[:len(path)-1]
}
dfs(root)
return res
}
func buildpath(path []int) string{
var sb strings.Builder
for i,v:= range path{
if i>0{
sb.WriteString("->")
}
sb.WriteString(strconv.Itoa(v))
}
return sb.String()
}