关于golang:Leetcode专题二叉树257二叉树的所有路径

4次阅读

共计 535 个字符,预计需要花费 2 分钟才能阅读完成。

力扣链接:
https://leetcode-cn.com/probl…
解题思路:

  1. 二叉树的所有门路,这里其实是 DFS 深度优先遍历,须要从跟节点遍历,直到遇到字节点,为一个门路
  2. 递归前序遍历,递归三部曲:(1)传入参数:这里传入的参数是每个节点,初始化为根节点(2)完结条件:当某个节点的左右子树均为空时即为一次后果 (3) 单次遍历规定:因为是 DFS,所以能够应用前序遍历
// 递归法
func binaryTreePaths(root *TreeNode) []string {res := []string{}
    var traver func(node *TreeNode, s string)
    traver = func(node *TreeNode, s string) {
        if node.Left == nil && node.Right == nil {s = s + strconv.Itoa(node.Val)
            res = append(res, s)
            return
        }
        s = s + strconv.Itoa(node.Val) + "->"
        if node.Left != nil {traver(node.Left, s)
        }
        if node.Right != nil {traver(node.Right, s)
        }
    }
    traver(root, "")
    return res
}
正文完
 0