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

题目描述

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

例如:

输入: 原始二叉搜索树:
5
/
2 13

输出: 转换为累加树:
18
/
20 13

注意:本题和 1038: https://leetcode-cn.com/problems/binary-search-tree-to-greater-sum-tree/ 相同


解法一:回溯(逆中序遍历)

  • 用一个sum维护当前遍历的累加数值
  • 采用右中左的访问顺序
class Solution {int sum = 0;public TreeNode convertBST(TreeNode root) {if(root!=null){convertBST(root.right);root.val+=sum;sum=root.val;convertBST(root.left);}return root;}
}

解法二:迭代

  • 当前节点的最右节点都压入栈中
  • 再访问栈顶节点,并考虑左子树
class Solution {public TreeNode convertBST(TreeNode root) {int sum = 0;TreeNode node = root;Stack<TreeNode> stack = new Stack<>();while(!stack.isEmpty()||node!=null){while(node!=null){stack.push(node);node=node.right;}node =stack.pop();node.val+=sum;sum=node.val;node=node.left;}return root;}
}

538. 把二叉搜索树转换为累加树(java)相关推荐

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

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

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

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

  3. Suzy找到实习了吗 Day23 | 二叉树最后一节!669. 修剪二叉搜索树,108. 将有序数组转换为二叉搜索树,538. 把二叉搜索树转换为累加树

    669. 修剪二叉搜索树 题目 给你二叉搜索树的根节点 root ,同时给定最小边界low 和最大边界 high.通过修剪二叉搜索树,使得所有节点的值在[low, high]中.修剪树 不应该 改变保 ...

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

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

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

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

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

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

  7. 力扣538.把二叉搜索树转换为累加树

    题目来源: 538.把二叉搜索树转换为累加树 题目: 给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中 ...

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

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

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

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

最新文章

  1. python生成斐波那契_python学习-生成器(generator)及斐波那契;yield
  2. 大龄屌丝自学笔记--Java零基础到菜鸟--001
  3. 汇编 头文件 依赖库文件
  4. Java 参数数后面跟三个点(...)的含义
  5. mysql错误代码1813_ERROR 1813 (HY000) at line 404: Tablespace for table '`xxx`.`xxxxx`' exists.
  6. 傅里叶变换表_Numpy库小抄表!主要语法和代码都在这里啦
  7. 位同步技术中的比相法
  8. javascript学习系列(2):数组中的filter方法
  9. 在FLEX中获得当前PLAYER版本等信息.
  10. 计算机导论 网络,计算机导论(网络).ppt
  11. dp4--codeVs1043 方格取数
  12. 数据结构排序系列详解之六 树形选择排序
  13. python中的列表推导与生成器
  14. Layui判断Tab栏是否打开,查找Tab栏中的元素
  15. java计算机毕业设计线上医药用品分销系统设计与实现MyBatis+系统+LW文档+源码+调试部署
  16. Android性能测试工具(一) 之Emmagee[转载]
  17. 转载:嵌入式系统综述之二
  18. Autojs 谁是卧底-炸弹猫计牌辅助
  19. 寒假之视频压缩笔记——FPGA 视频 拼接器传输 4k(3840x2160)@30hz的架构
  20. 豆豆趣事[2016年10月]

热门文章

  1. Nginx转发https
  2. 生死系列--WuJie
  3. 运动耳机排行榜,2022年值得推荐的六款运动耳机
  4. QT_简单时钟设计_看起来像那么回事高端大气上档次?
  5. AI创作之如何使用Stable Diffusion AI 将自己变成皮克斯动画角色 (教程含完整操作步骤)
  6. 【Vue粒子动效插件】Vue3之vue-particles实现一个科技粒子动画登录页面,Picker It~
  7. win10驱动返回56错误
  8. QT应用编程: windows下调用福熙阅读器COM插件完成PDF开发
  9. 昌吉学院计算机毕业难不难,昌吉学院考研难吗?一般要什么水平才可以进入?...
  10. 华南农业大学c语言测试,华南农业大学《C语言程序设计》考卷(8份)