NOTE

求根节点到叶节点数字之和

求根节点到叶节点数字之和的 LeetCode 解题笔记。

Data Structures & Algorithms创建于 更新于 约 1 分钟读完historical

这是历史学习笔记,可能存在过时或不完整的理解。

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)
}

4. 参考

讨论

使用 GitHub 账号参与讨论,评论会保存在 GitHub Issues 中。在 GitHub 查看