lc1022-从根到叶的二进制数之和

题目描述

  • 给定一个二进制二叉树,计算所有从根到叶子节点组成的数字之和

示例

1022-example-01

输入:root = [1,0,1,0,1,0,1]
输出:22
解释:(100) + (101) + (110) + (111) = 4 + 5 + 6 + 7 = 22
输入:root = [0]
输出:0

题解

  • 思路:dfs
func sumRootToLeaf(root *TreeNode) int {
    return dfs(root, 0)
}

func dfs(p *TreeNode, s int) int {
    if p == nil { return 0 }

    s = s << 1 | p.Val
    if p.Left == nil && p.Right == nil { return s }

    return dfs(p.Left, s) + dfs(p.Right, s)
}
posted @ 2025-09-09 21:04  余越  阅读(10)  评论(0)    收藏  举报