33 lines
496 B
Go
33 lines
496 B
Go
package q129
|
|
|
|
type TreeNode struct {
|
|
Val int
|
|
Left *TreeNode
|
|
Right *TreeNode
|
|
}
|
|
|
|
func sumNums(node *TreeNode, prefix int) int {
|
|
prefix = prefix*10 + node.Val
|
|
|
|
if node.Left == nil && node.Right == nil {
|
|
return prefix
|
|
}
|
|
|
|
sum := 0
|
|
if node.Left != nil {
|
|
sum += sumNums(node.Left, prefix)
|
|
}
|
|
if node.Right != nil {
|
|
sum += sumNums(node.Right, prefix)
|
|
}
|
|
return sum
|
|
}
|
|
|
|
func sumNumbers(root *TreeNode) int {
|
|
if root == nil {
|
|
return 0
|
|
}
|
|
return sumNums(root, 0)
|
|
}
|
|
|
|
var _ = sumNumbers
|