ProblemLeetCode给定二叉搜索树(BST)的根,将其转换为更大的树,使得原始BST的每个键都更改为原始键加上BST中大于原始键的所有键的总和。提醒一下,二叉搜索树是满足这些约束的树:节点的左子树仅包含键小于节点键的节点。右子树的节点只包含键大于节点key的节点。左右子树也必须是二叉搜索树。注:本题同1038:https://leetcode.com/problems...例1:输入:root=[4,1,6,0,2,5,7,null,null,null,3,null,null,null,8]输出:[30,36,21,36,35,26,15,null,null,null,33,null,null,null,8]示例2:输入:root=[0,null,1]输出:[1,null,1]示例3:输入:root=[1,0,2]Output:[3,3,2]Example4:Input:root=[3,2,4,1]Output:[7,9,4,10]Constraints:Thenumberofnodes在树中的范围是[0,104].-104<=Node.val<=104树中的所有值都是唯一的。root保证是一个有效的二叉搜索树。搜索树的根节点,树有不同的节点值,请将其转化为累积树(GreaterSumTree),使每个节点节点的新值等于其中一个大于等于的值到原始树中的node.val提醒一下,二叉搜索树满足以下约束:节点的左子树仅包含键小于节点键的节点。节点的右子树仅包含键大于节点键的节点。左右子树也必须是二叉搜索树。注:本题同1038:https://leetcode-cn.com/probl...例1:输入:[4,1,6,0,2,5,7,null,null,null,3,null,null,null,8]输出:[30,36,21,36,35,26,15,null,null,null,33,null,null,null,8]示例2:输入:root=[0,null,1]输出:[1,null,1]示例3:输入:root=[1,0,2]输出:[3,3,2]示例4:输入:root=[3,2,4,1]输出:[7,9,4,10]提示:树的节点数在0到104之间,每个节点的值在-104到104之间,树中的所有值都是彼此不同。给定的树是二叉搜索树。中序遍历的思想是利用BST的中序遍历,也就是升序的特性,按照降序遍历BST的元素值。Python3定义#定义一个二叉树节点。#classTreeNode:#def__init__(self,val=0,left=None,right=None):#self.val=val#self.left=left#self.right=rightclass解决方案:defconvertBST(self,root:TreeNode)->TreeNode:defdfs(root):nonlocalsumvalifroot:dfs(root.right)sumval+=root。瓦尔根。val=sumval#启用BST规范树dfs(root.left)sumval=0dfs(root)returnrootGitHubOpenPython
