123456789101112131415161718192021222324252627282930313233343536 |
- package main
- /**
- * Definition for a binary tree node.
- * type TreeNode struct {
- * Val int
- * Left *TreeNode
- * Right *TreeNode
- * }
- */
- func sumNumbers(root *TreeNode) int {
- sum := 0
- if root == nil {
- return sum
- }
- sumNumbersHelper(root, 0, &sum)
- return sum
- }
- func sumNumbersHelper(root *TreeNode, prefix int, sum *int) {
- prefix = prefix*10 + root.Val
- hasLeft, hasRight := root.Left != nil, root.Right != nil
- if hasLeft {
- sumNumbersHelper(root.Left, prefix, sum)
- }
- if hasRight {
- sumNumbersHelper(root.Right, prefix, sum)
- }
- if !hasLeft && !hasRight {
- *sum += prefix
- }
- }
- // func main() {
- // println(sumNumbers(sortedArrayToBST([]int{1, 2, 3})))
- // }
|