版权声明:原创勿转 https://cloud.tencent.com/developer/article/1413000
思路
因为给定的树是BST,所以可以知道如果采用后续遍历的方式,第一个找到的节点应该是最大的节点。所以采用递归的方式从最大的节点开始改变树的值
code
代码语言:javascript复制var sum int
func convertBST(root *TreeNode) *TreeNode {
sum = 0
helper(root)
return root
}
func helper(root *TreeNode) {
if root == nil {
return
}
helper(root.Right)
root.Val = sum
sum = root.Val
helper(root.Left)
}