题目描述
- 给定一个二进制二叉树,计算所有从根到叶子节点组成的数字之和
示例
输入: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.Valif p.Left == nil && p.Right == nil { return s }return dfs(p.Left, s) + dfs(p.Right, s)
}