刷题前唠嗑

【LeetCode】每日一题 2023_12_4 从二叉搜索树到更大和树(二叉树)-LMLPHP
LeetCode?启动!!!

题目:从二叉搜索树到更大和树

题目链接:1038. 从二叉搜索树到更大和树

题目描述

【LeetCode】每日一题 2023_12_4 从二叉搜索树到更大和树(二叉树)-LMLPHP

代码与解题思路

这道题题目描述可能比较模糊,直接看题目给的样例就行,不管他本身是一棵什么树,直接从他的最右节点开始看:
【LeetCode】每日一题 2023_12_4 从二叉搜索树到更大和树(二叉树)-LMLPHP
然后你发现他的节点值和蓝字的值是一样的,节点的值是树当前的值,蓝字的值是我们需要把数节点值变成蓝字,可以看到最右节点是 8,蓝字也是 8,往上走,蓝字是 15,8+7=15,接着 6+15=21,5+21=26,发现没有,其实就是将二叉树的节点值进行累加,按照:“右根左” 的顺序:

func bstToGst(root *TreeNode) *TreeNode {
    sum := 0
    var convert func(*TreeNode)
    convert = func(node *TreeNode) {
        if node == nil {
            return
        }
        convert(node.Right) // 右
        sum += node.Val // 累加
        node.Val = sum  // 根
        convert(node.Left) // 左
    }
    convert(root)
    return root
}

我们的代码就是按照这个顺序进行遍历操作的。

结语

主要是把题目给看明白就行了

12-05 08:42