go: add «1038. Binary Search Tree to Greater Sum Tree»

Signed-off-by: Matej Focko <me@mfocko.xyz>
This commit is contained in:
Matej Focko 2024-06-25 17:35:08 +02:00
parent 6c0af823be
commit 70419f93de
Signed by: mfocko
GPG key ID: 7C47D46246790496

View file

@ -0,0 +1,26 @@
package main
func bstToGst(root *TreeNode) *TreeNode {
var rec func(*TreeNode, int) int
rec = func(node *TreeNode, toAdd int) int {
if node == nil {
return toAdd
}
// recurse to right
toAdd = rec(node.Right, toAdd)
// add to the current value
originalValue := node.Val
node.Val += toAdd
// pass new sum to the left
toAdd = rec(node.Left, toAdd+originalValue)
// return new sum
return toAdd
}
rec(root, 0)
return root
}