前言
持续更新了
正文
问题来源
本问题来自leetcode上的257题。
问题描述
给定一个二叉树,返回所有从根节点到叶子节点的路径。
说明: 叶子节点是指没有子节点的节点。
示例 1:
输入:
1
/ \
2 3
\
5
输出: ["1->2->5", "1->3"]
解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->3
分析:
去看官方题解
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func binaryTreePaths(root *TreeNode) []string {
res := make([]string, 0)
dfs(root, "", &res)
return res
}
func dfs(root *TreeNode, cur string, res *[]string) {
if root == nil {
return
}
tmp := cur+strconv.Itoa(root.Val)
if root.Left == nil && root.Right == nil {
*res = append(*res, tmp)
return
}
tmp += "->"
dfs(root.Left, tmp, res)
dfs(root.Right, tmp, res)
}
总结:
勤思考。
结语
不管怎么样好好加油。