// Package q1022 implements a solution for https://leetcode.com/problems/sum-of-root-to-leaf-binary-numbers/ package q1022 type TreeNode struct { Val int Left *TreeNode Right *TreeNode } func sum(node *TreeNode, prefix int, ret *int) { if node == nil { return } num := prefix<<1 + node.Val if node.Left == nil && node.Right == nil { *ret += num } else { sum(node.Left, num, ret) sum(node.Right, num, ret) } } func sumRootToLeaf(root *TreeNode) int { ret := 0 sum(root, 0, &ret) return ret } var _ = sumRootToLeaf