文章目录

  • 1. 题目
  • 2. 逆中序(根右左,降序循环遍历)

1. 题目

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

例如:输入: 二叉搜索树:5/   \2     13输出: 转换为累加树:18/   \20     13

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/convert-bst-to-greater-tree
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 逆中序(根右左,降序循环遍历)

  • 循环
class Solution {public:TreeNode* convertBST(TreeNode* root) {stack<TreeNode*> stk;int prevSum = 0;TreeNode* rootcopy = root;while(root || !stk.empty()){while(root){stk.push(root);root = root->right;}root = stk.top();prevSum += root->val;root->val = prevSum;root = root->left;stk.pop();}return rootcopy;}
};
  • 递归
class Solution {int sum = 0;
public:TreeNode* convertBST(TreeNode* root) {if(!root) return NULL;convertBST(root->right);sum += root->val;root->val = sum;convertBST(root->left);return root;}
};

LeetCode 538. 把二叉搜索树转换为累加树(逆中序 根右左)相关推荐

  1. [二叉树遍历|BST]leetcode 538 把二叉搜索树转换为累加树

    [二叉树遍历|BST]leetcode 538 把二叉搜索树转换为累加树 1.题目 题目链接 给定一个二叉搜索树(Binary Search Tree),把它转换成为累加树(Greater Tree) ...

  2. Leetcode 538. 把二叉搜索树转换为累加树 C++

    Leetcode 538. 把二叉搜索树转换为累加树 题目 给定一个二叉搜索树(Binary Search Tree),把它转换成为累加树(Greater Tree),使得每个节点的值是原来的节点值加 ...

  3. LeetCode 538. 把二叉搜索树转换为累加树 | Python

    538. 把二叉搜索树转换为累加树 题目来源:力扣(LeetCode)https://leetcode-cn.com/problems/convert-bst-to-greater-tree 题目 给 ...

  4. leetcode 538. 把二叉搜索树转换为累加树 思考分析

    题目 给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和. 提醒一 ...

  5. leetcode - 538. 把二叉搜索树转换为累加树

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

  6. LeetCode 538. 把二叉搜索树转换为累加树

    思路:ST的中序遍历就是从小到大,那么反过来就是从大到小,然后通过num累加  int num =0;public TreeNode convertBST(TreeNode root) {if(roo ...

  7. LeetCode系列538—把二叉搜索树转换为累加树

    题意 538. 把二叉搜索树转换为累加树 题解 方法一:反序中序遍历 class Solution {private:int sum = 0; public:TreeNode* convertBST( ...

  8. leetcode c++未初始化_LeetCode 力扣官方题解 | 538. 把二叉搜索树转换为累加树

    力扣 538. 把二叉搜索树转换为累加树(点击查看题目) 力扣​leetcode-cn.com 题目描述 给定一个二叉搜索树(Binary Search Tree),把它转换成为累加树(Greater ...

  9. LeetCode 力扣 538. 把二叉搜索树转换为累加树 convertBstToGreaterTree538树

    大家觉得写还可以,可以点赞.收藏.关注一下吧! 也可以到我的个人博客参观一下,估计近几年都会一直更新!和我做个朋友吧!https://motongxue.cn 文章目录 538. 把二叉搜索树转换为累 ...

最新文章

  1. OpenVINO2021.4+YOLOX目标检测模型部署测试
  2. Closer--Never Take it for granted
  3. Java Comparator 珍藏版
  4. Hibernate ORM框架——连接池相关
  5. NB-IoT在智能农业中的示范应用
  6. python问卷调查系统设计案例_从设计到施工,全面剖析超级玻璃屋面系统案例!...
  7. [弹性力学]弹力与材力的同一变量的规定正方向的不同导致公式中个别符号不同
  8. c语言bmp转换jpeg_PDF格式转换工具
  9. AI 助力智慧城市发展 | 腾讯视觉峰会回顾
  10. hbuilder配置浏览器 设置编辑器默认浏览器
  11. oracle vm 鼠标切换,VirtualBox的Linux虚拟机文本模式和图形模式的切换问题
  12. 简单理解NLP中文分词
  13. 详解clickhouse分区目录的合并过程
  14. linux对指定ip限速,使用tc对linux中某ip段限速
  15. tup,list,dict,set的创建
  16. Python中的下划线到底什么意思?
  17. 无线网络监控分析工具
  18. [C语言]统计单词:输入一行字符(其中仅包含英文字母和空格),用函数编程统计其中有多少单词。假设单词之间以空格分开。
  19. 计算机科学与探索 影响因子,《计算机科学与探索》国家级计算机期刊投稿论文发表...
  20. Python实现Word2vec学习笔记

热门文章

  1. 字符设备驱动高级篇5——静态映射表、动态映射结构体方式操作寄存器
  2. 使用NVM管理Node - Windows
  3. request获取各种路径总结、页面跳转总结。
  4. 【习题 5-8 UVA - 230】Borrowers
  5. Maven配置项目依赖使用本地仓库的方法汇总
  6. jQuery / zepto ajax 全局默认设置
  7. JS动画 | 用TweenMax实现收集水滴效果
  8. PowerBuilder调用.Net编译好的DLL
  9. Delphi下物理删除dBase数据库的*.dbf文件
  10. 使用croc命令在Linux系统电脑之间传输文件和文件夹