NOTE
求根节点到叶节点数字之和
求根节点到叶节点数字之和的 LeetCode 解题笔记。
这是历史学习笔记,可能存在过时或不完整的理解。
1. 题目描述
给你一个二叉树的根节点 root ,树中每个节点都存放有一个 0 到 9 之间的数字。 每条从根节点到叶节点的路径都代表一个数字:
例如,从根节点到叶节点的路径 1 -> 2 -> 3 表示数字 123 。 计算从根节点到叶节点生成的 所有数字之和 。
叶节点 是指没有子节点的节点。
2. 思路
3. 实现
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func sumNumbers(root *TreeNode) int {
sum := 0
sumNumbersDFS(root, 0, &sum)
return sum
}
func sumNumbersDFS(root *TreeNode, num int, sum *int) {
if root == nil {return}
num = num * 10 + root.Val
if root.Left == nil && root.Right == nil {
*sum += num
}
sumNumbersDFS(root.Left, num, sum)
sumNumbersDFS(root.Right, num, sum)
}
讨论
使用 GitHub 账号参与讨论,评论会保存在 GitHub Issues 中。在 GitHub 查看