538. Convert BST to Greater Tree*

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

C++ 实现 1

中序遍历, 使用一个 “global” 的变量 sum 来存储目前已经访问的节点值的和.

class Solution {private:int sum = 0;
public:// 使用中序遍历, 但是先访问右子树, 再访问根节点, 最后访问// 左子树, 这样的话, 元素是从大到小排列, 使用 sum 记录访问// 到当前元素时, 前面已访问过的元素的和是多少, 访问完当前// 根节点的元素后, 不要忘记更新 sum 的值.TreeNode* convertBST(TreeNode* root) {if (!root)return nullptr;convertBST(root->right);root->val += sum;sum = root->val;convertBST(root->left);return root;}
};

538. Convert BST to Greater Tree*相关推荐

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

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

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

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

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

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

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

  5. Leetcode 538 - Convert BST to Greater Tree

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

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

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

  7. LeetCode: Convert BST to Greater Tree

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

  8. 11/100. Convert BST to Greater Tree

    给定一个二叉搜索树(左节点值<根节点值<右节点值),输出:左=左+根+右,根=根+右,右=右. 从右子树至左子树进行相加,返回left(相加最大值),"temp"用来记 ...

  9. BST(Binary Search Tree 二叉查找树模版)

    /****************************************** 数据结构: BST(Binary Search Tree),二叉查找树;性质: 若结点的左子树不空,则左子树上所 ...

最新文章

  1. springmvc+mybatis+spring+redis
  2. 数据结构:堆python实现与堆排序
  3. Devexpress中Tdxnavbar的使用
  4. Mysql错误1366的解决办法:Incorrect string value: '\xF0\x9F...' for column 'XXX' at row 1
  5. markdown编辑数学公式
  6. Rust 能取代 Python,更好的实现神经网络?
  7. 代码可读性、可调式、可维护性
  8. MongoDB 之聚合函数查询统计
  9. 一种将排序值换算为得分值的方法
  10. vue 接口请求下载文件
  11. cpu飙升 死循环_CPU飙升问题的解决实例
  12. linux多点触控软件测试,视频:Linux系统也可支持多点触控操作
  13. OOM and SOF
  14. 微型计算机鸡兔同笼,《鸡兔同笼》问题研究
  15. 高级安全Windows防火墙管理单元无法加载。请重新启动正在管理的计算机上的Windows防火墙服务,报错代码:0x6D9
  16. 电脑连上了WiFi,却发现没有网(昨天还好好的)
  17. VMware创建共享文件夹并实现文件传输(Windows主机,Ubuntu虚拟机)
  18. windows服务启动 1053错误
  19. sim卡无线上网公用服务器,云SIM卡池,云SIM卡解决方案,流量分发随身WIFI方案( 忻瑞科技)...
  20. Discuz论坛邮箱配置

热门文章

  1. Android开发蓝牙操作
  2. URAL 1009 K-based Numbers (DFS)
  3. Python+selenium+Chromedriver+代理爬取Google图片
  4. origin如何调整图例为2行
  5. 电子企业MES管理系统解决方案
  6. 再见,普及的OI生涯
  7. Golang学习之路—map
  8. C#winform任务栏显示小图标及右击操作
  9. 在数组中查找字符串的位置
  10. Windows10添加回环网卡