Skip to content
Merged
Prev Previous commit
Next Next commit
add: leetcode 1022 solution
  • Loading branch information
tyd2000 committed Jun 28, 2022
commit 8c353893f96d0a17f93549d103f8b38def465ae2
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package leetcode

import "github.com/halfrost/LeetCode-Go/structures"

// TreeNode define
type TreeNode = structures.TreeNode

/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func sumRootToLeaf(root *TreeNode) int {
var dfs func(*TreeNode, int) int
dfs = func(node *TreeNode, sum int) int {
if node == nil {
return 0
}
sum = sum<<1 | node.Val
// 上一行也可以写作 sum = sum*2 + node.Val
if node.Left == nil && node.Right == nil {
return sum
}
return dfs(node.Left, sum) + dfs(node.Right, sum)
}
return dfs(root, 0)
}