538. Convert BST to Greater Tree

BST性质:比当前node大的数都在右子树,所以每个node都加上右子树的sum就行,添加一个全局变量用来记录right subtree sum,递归遍历。

class Solution:
    def __init__(self):
        self.sumSubtree = 0
        
    def convertBST(self, root: TreeNode) -> TreeNode:
        return self.traversal(root)
        
    def traversal(self, root):
        if not root: return root
        self.convertBST(root.right)
        self.sumSubtree += root.val
        root.val = self.sumSubtree
        self.convertBST(root.left)
        return root

Last updated

Was this helpful?