题目如下:

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     13Output: The root of a Greater Tree like this:18/   \20     13

解题思路:一时卡壳了,只想出了一个很挫的方法,把所有节点的值都取出来,然后找出每个节点的所有比其大的值的和,这个值就是这个节点的值要加上的大小,最后再遍历一次树修改节点。

代码如下:

# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = Noneclass Solution(object):l = []dic = {}def traverse(self,node,mode):if node == None:returnif mode == 1:self.l.append(node.val)else:node.val += self.dic[node.val]if node.left != None:self.traverse(node.left,mode)if node.right != None:self.traverse(node.right,mode)def convertBST(self, root):""":type root: TreeNode:rtype: TreeNode"""self.l = []self.dic = {}self.traverse(root,1)ul = sorted(list(set(self.l)))total = 0for i in ul[::-1]:self.dic[i] = totaltotal += iself.traverse(root, 0)return root

转载于:https://www.cnblogs.com/seyjs/p/10208410.html

【leetcode】538. Convert BST to Greater Tree相关推荐

  1. 【LeetCode】538. Convert BST to Greater Tree 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 递归 日期 题目地址:https://leetcod ...

  2. 538. Convert BST to Greater Tree*

    538. Convert BST to Greater Tree* https://leetcode.com/problems/convert-bst-to-greater-tree/ 题目描述 Gi ...

  3. Leetcode——538. Convert BST to Greater Tree

    题目原址 https://leetcode.com/problems/convert-bst-to-greater-tree/description/ 题目描述 Given a Binary Sear ...

  4. 538. Convert BST to Greater Tree

    题目描述: Given a Binary Search Tree (BST), convert it to a Greater Tree such that every key of the orig ...

  5. 538. Convert BST to Greater Tree 把二叉搜索树转换为累加树

    给定一个二叉搜索树(Binary Search Tree),把它转换成为累加树(Greater Tree),使得每个节点的值是原来的节点值加上所有大于它的节点值之和. 例如: 输入: 原始二叉搜索树: ...

  6. Leetcode 538 - Convert BST to Greater Tree

    题意 给一个BST,改变其节点的值,将其节点的值加上所有比他大的节点的值 思路 首先注意是BST,其中序遍历的节点是递增序列.即假设中序遍历后的结果是a0,a1,a2,....ana_0, a_1, ...

  7. Golang Leetcode 538. Convert BST to Greater Tree.go

    思路 因为给定的树是BST,所以可以知道如果采用后续遍历的方式,第一个找到的节点应该是最大的节点.所以采用递归的方式从最大的节点开始改变树的值 code var sum intfunc convert ...

  8. 【leetcode】109. Convert Sorted List to Binary Search Tree

    题目如下: Given a singly linked list where elements are sorted in ascending order, convert it to a heigh ...

  9. 【LeetCode】405 Convert a Number to Hexadecimal (java实现)

    2019独角兽企业重金招聘Python工程师标准>>> 原题链接 https://leetcode.com/problems/convert-a-number-to-hexadeci ...

  10. LeetCode: Convert BST to Greater Tree

    利用好BST的特性,解起来并不难 1 /** 2 * Definition for a binary tree node. 3 * public class TreeNode { 4 * int va ...

最新文章

  1. python-docx 使用教程_python docx 中文字体设置的操作方法
  2. 006.递归和分治思想
  3. 牛津大学入学面试就这?组队选个颜色?背后的逻辑水深得很
  4. mysql的表最多可设置多少字段?
  5. OpenSSL(加密方式,加密算法,自签证书)
  6. 《Linux内核分析》实践2
  7. Product Overview page data loss handling
  8. Java国家/地区使用限制条款引发争议
  9. 将json绑定为对象_了解自定义对象创建:JSON绑定概述系列
  10. 网易云课堂解析_使用SQL分析网易云课堂职场提升类课程
  11. HD-ACM算法专攻系列(9)——大菲波数
  12. 最新隐马尔可夫模型HMM详解
  13. 能力风暴智能机器人编程实例与vjc4.2的相关问题
  14. 考试管理系统【软件工程实践课设报告】
  15. 城市大脑已经几岁?城市大脑发展成熟度的年龄评估模型
  16. 当马队遭遇狼群,阿里华为长篇竞合剧基情开幕
  17. MFC SDL FFmpeg视频播放器开发教程(一)
  18. 别再用mybatis了,mybatis-plus 这个神级工具一发入魂
  19. 真正的小说 真正的生活 真正的蜕变 真正的品味
  20. 收藏:什么是PACD工作法

热门文章

  1. #1062 – Duplicate entry ‘1’ for key ‘PRIMARY’
  2. js或jsp 获取项目路径常用方法
  3. JS1 js获取dom元素方法
  4. CF 61E 树状数组+离散化 求逆序数加强版 三个数逆序
  5. AS3.0实例学习 熟悉新的事件机制和addChild的运用
  6. 应用WSH、JavaScript和 bat 实现自动化构建工具改善工作中的代码部署流程!
  7. 内容超过7行显示查看全文
  8. python爬虫学习之使用BeautifulSoup库爬取开奖网站信息-模块化
  9. oracle单行函数 之 字符函数
  10. 【转】elasticsearch的查询器query与过滤器filter的区别