Given a binary tree, each node has value 0 or 1. Each root-to-leaf path represents a binary number starting with the most significant bit. For example, if the path is 0 - 1 - 1 - 0 - 1, then this could represent 01101 in binary, which is 13. For all leaves in the tree, consider the numbers represented by the path from the root to that leaf. Return the sum of these numbers.[caption id="attachment_6888" align="alignnone" width="738"] binary-tree-binary-numbers[/caption]

Example 1:

Input: [1,0,1,0,1,0,1]

Output: 22

Explanation: (100) + (101) + (110) + (111) = 4 + 5 + 6 + 7 = 22Note:

The number of nodes in the tree is between 1 and 1000.

node.val is 0 or 1.

The answer will not exceed 2^31 - 1.

### GoLang Depth First Search Algorithm to Compute the Root to Leaves Binary Numbers

We need a helper Depth First Search function to compute the sum from current root to the leaves. Additionally, it needs to pass down a current sum up to now - which can be multiplied by two when passing down to the leaves.

```
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func sumRootToLeaf(root *TreeNode) int {
return dfs(root, 0)
}
func dfs(root *TreeNode, cur int) int {
if root == nil {
return 0
}
if root.Left == nil && root.Right == nil {
return cur << 1 + root.Val
}
var a = dfs(root.Left, cur << 1 + root.Val)
var b = dfs(root.Right, cur << 1 + root.Val)
return a + b
}
```

Other root to leaves sum:

- Teaching Kids Programming - Depth First Search Algorithm to Sum the Root to Leaf Numbers in Binary Tree
- How to Sum the Root To Leaf in Binary Numbers in a Binary Tree using Breadth First Search?
- Teaching Kids Programming - Breadth First Search Algorithm to Sum Root to Leaf Numbers in Binary Tree
- GoLang: Sum of Root To Leaf Binary Numbers via Depth First Search Algorithm

Reposted to Blog

## ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Thank you for reading ^^^^^^^^^^^^^^^

## NEW! Following my Trail (Upvote or/and Downvote)

Follow me for topics of *Algorithms, Blockchain and Cloud.*

I am @justyy - a Steem Witness

https://steemyy.com

#### My contributions

- Video Downloader
- Steem Blockchain Tools
- Free Cryptos API
- VPS Database
- Computing Technology Blog
- A few useless tools
- And some other online software/tools
- Merge Files/Videos
- LOGO Turtle Programming Chrome Extension
- Teaching Kids Programming - Youtube Channel and All Contents

#### Delegation Service

#### Support me

If you like my work, please:

- Buy Me a Coffee, Thanks!
- Become my Sponsor, Thanks!
- Voting for me:

https://steemit.com/~witnesses type in**justyy**and click*VOTE*

- Delegate SP: https://steemyy.com/sp-delegate-form/?delegatee=justyy
- Vote @justyy as Witness: https://steemyy.com/witness-voting/?witness=justyy&action=approve
- Set @justyy as Proxy: https://steemyy.com/witness-voting/?witness=justyy&action=proxy

Alternatively, you can vote witness or set proxy here: https://steemit.com/~witnesses

blurtcurator· 6 days agoCongratulations! This post has been upvoted by the @blurtcurator communal account,

You can request a vote every 12 hours from the #getupvote channel in the official Blurt Discord.Don't wait to join ,lots of good stuff happening there.

r2cornell· 5 days agoCongratulations, your post has been upvoted by @r2cornell, which is the curating account for @R2cornell's Discord Community.