题目:
给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。
算法:
func convertBST(root *TreeNode) *TreeNode {
nodeSum(root, 0)
return root
}
func nodeSum(node *TreeNode, sum int) int {
if node == nil {
return sum
}
node.Val = node.Val + nodeSum(node.Right, sum)
return nodeSum(node.Left, node.Val)
}