Leetcode专题[二叉树]-257-二叉树的所有路径

【Leetcode专题[二叉树]-257-二叉树的所有路径】力扣链接:
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 }

    推荐阅读