用深度优先搜索
type TreeNode struct {
Val int
Left *TreeNode
Right *TreeNode
}
func dfs(root *TreeNode, prevSum int) int {
if root == nil {
return 0
}
sum := prevSum*10 + root.Val
if root.Left == nil && root.Right == nil {
return sum
}
return dfs(root.Left, sum) + dfs(root.Right, sum) //递归
}
func sumNumbers(root *TreeNode) int {
return dfs(root, 0)
}
func main() {
left := TreeNode{2, nil, nil}
right := TreeNode{3, nil, nil}
root := TreeNode{1, &left, &right}
fmt.Println(sumNumbers(&root))
}
根到叶子的数字之和
深度优先搜索求解树路径之和
最新推荐文章于 2021-03-16 15:23:42 发布
本文介绍了一个使用深度优先搜索(DFS)算法来遍历二叉树并计算从根节点到叶子节点的所有路径数值之和的方法。通过递归的方式实现了DFS,并给出了一段具体的Go语言代码实现。该算法适用于所有由0-9之间的整数组成的二叉树,且每个节点的值为一位数。
692

被折叠的 条评论
为什么被折叠?



