Leetcode 257.二叉树的所有路径

0 阅读1分钟

题目

image.png

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()
}