题目
26年6月20日(首刷自解)
func convertBST(root *TreeNode) *TreeNode {
var pre *TreeNode
var traverse func(root *TreeNode)
traverse=func(node *TreeNode){
if node==nil{
return
}
traverse(node.Right)
if pre!=nil{
node.Val=node.Val+pre.Val
}
pre = node
traverse(node.Left)
}
traverse(root)
return root
}
思路
这道题和Leetcode 530.二叉搜索树的最小绝对值` 很像,你会发现遍历的顺序就是右根左,一个反向的中序遍历,每一次节点都加上上一个节点的值就行