Leetcode 538.把二叉搜索树转换为累加树(二叉树完结niceeeee~~620)

0 阅读1分钟

题目

image.png

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.二叉搜索树的最小绝对值` 很像,你会发现遍历的顺序就是右根左,一个反向的中序遍历,每一次节点都加上上一个节点的值就行