zoukankan      html  css  js  c++  java
  • 538. Convert BST to Greater Tree 二叉搜索树转换为更大树

    Given 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.

    Example:

    Input: The root of a Binary Search Tree like this:
                  5
                /   
               2     13
    
    Output: The root of a Greater Tree like this:
                 18
                /   
              20     13
    题意:给出二叉搜索树,每一个节点累加比自己更大的值
    解法:根据二叉搜索树的特性可知,按照 右->根->左的顺序遍历节点

    1. # Definition for a binary tree node.
    2. # class TreeNode(object):
    3. # def __init__(self, x):
    4. # self.val = x
    5. # self.left = None
    6. # self.right = None
    7. class Solution(object):
    8. def convertBST(self, root):
    9. """
    10. :type root: TreeNode
    11. :rtype: TreeNode
    12. """
    13. self.helper(root)
    14. return root
    15. sum = 0
    16. def helper(self, node):
    17. if(node):
    18. self.helper(node.right)
    19. node.val += self.sum
    20. self.sum = node.val
    21. self.helper(node.left)






  • 相关阅读:
    Noip2017 提高组初赛 游(baozha)记
    bzoj4557
    MVVM
    当下较热web前端技术汇总
    JQ 常见demo
    各种宽高
    JQuery 总结
    自定义滚动条配合鼠标滚轮demo
    H5 触摸事件
    SQL必备知识点
  • 原文地址:https://www.cnblogs.com/xiejunzhao/p/7143630.html
Copyright © 2011-2022 走看看