leetcode 1038. Binary Search Tree to Greater Sum Tree(python) - Go语言中文社区

leetcode 1038. Binary Search Tree to Greater Sum Tree(python)


描述

Given the root of a Binary Search Tree (BST), convert it to a Greater Tree such that every key of the original BST is changed to the original key plus sum of all keys greater than the original key in BST.

As a reminder, a binary search tree is a tree that satisfies these constraints:

  • The left subtree of a node contains only nodes with keys less than the node’s key.
  • The right subtree of a node contains only nodes with keys greater than the node’s key.
  • Both the left and right subtrees must also be binary search trees.

Note: This question is the same as 538: https://leetcode.com/problems/convert-bst-to-greater-tree/

Example 1:

avater

Input: root = [4,1,6,0,2,5,7,null,null,null,3,null,null,null,8]
Output: [30,36,21,36,35,26,15,null,null,null,33,null,null,null,8]

Example 2:

Input: root = [0,null,1]
Output: [1,null,1]

Example 3:

Input: root = [1,0,2]
Output: [3,3,2]

Example 4:

Input: root = [3,2,4,1]
Output: [7,9,4,10]

Note:

The number of nodes in the tree is in the range [1, 100].
0 <= Node.val <= 100
All the values in the tree are unique.
root is guaranteed to be a valid binary search tree.

解析

根据题意,其实就是将搜索二叉树的每个节点变为大于等于其自身的累加和,所以就是先右子树——后根结点——再左子树的顺序,开始遍历所有节点,并将遍历到当前节点的值加入 sum 中,并将 sum 赋值给当前节点即可。

解答

class Solution(object):
    def bstToGst(self, root):
        """
        :type root: TreeNode
        :rtype: TreeNode
        """
        def dfs(root):
            if not root:
                return
            dfs(root.right)
            self.sum += root.val
            root.val = self.sum
            dfs(root.left)
        self.sum = 0
        dfs(root)
        return root

运行结果

Runtime: 24 ms, faster than 32.29% of Python online submissions for Binary Search Tree to Greater Sum Tree.
Memory Usage: 13.4 MB, less than 64.57% of Python online submissions for Binary Search Tree to Greater Sum Tree.

原题链接:https://leetcode.com/problems/binary-search-tree-to-greater-sum-tree/

您的支持是我最大的动力

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/wang7075202/article/details/115401229
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2023-01-02 09:08:29
  • 阅读 ( 285 )
  • 分类:算法

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢