lc1022-从根到叶的二进制数之和
题目描述
- 给定一个二进制二叉树,计算所有从根到叶子节点组成的数字之和
示例

输入: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)
}

浙公网安备 33010602011771号