538. 把二叉搜索树转换为累加树(java)
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)相关推荐
- [二叉树遍历|BST]leetcode 538 把二叉搜索树转换为累加树
[二叉树遍历|BST]leetcode 538 把二叉搜索树转换为累加树 1.题目 题目链接 给定一个二叉搜索树(Binary Search Tree),把它转换成为累加树(Greater Tree) ...
- leetcode c++未初始化_LeetCode 力扣官方题解 | 538. 把二叉搜索树转换为累加树
力扣 538. 把二叉搜索树转换为累加树(点击查看题目) 力扣leetcode-cn.com 题目描述 给定一个二叉搜索树(Binary Search Tree),把它转换成为累加树(Greater ...
- Suzy找到实习了吗 Day23 | 二叉树最后一节!669. 修剪二叉搜索树,108. 将有序数组转换为二叉搜索树,538. 把二叉搜索树转换为累加树
669. 修剪二叉搜索树 题目 给你二叉搜索树的根节点 root ,同时给定最小边界low 和最大边界 high.通过修剪二叉搜索树,使得所有节点的值在[low, high]中.修剪树 不应该 改变保 ...
- Leetcode 538. 把二叉搜索树转换为累加树 C++
Leetcode 538. 把二叉搜索树转换为累加树 题目 给定一个二叉搜索树(Binary Search Tree),把它转换成为累加树(Greater Tree),使得每个节点的值是原来的节点值加 ...
- LeetCode 538. 把二叉搜索树转换为累加树 | Python
538. 把二叉搜索树转换为累加树 题目来源:力扣(LeetCode)https://leetcode-cn.com/problems/convert-bst-to-greater-tree 题目 给 ...
- LeetCode 力扣 538. 把二叉搜索树转换为累加树 convertBstToGreaterTree538树
大家觉得写还可以,可以点赞.收藏.关注一下吧! 也可以到我的个人博客参观一下,估计近几年都会一直更新!和我做个朋友吧!https://motongxue.cn 文章目录 538. 把二叉搜索树转换为累 ...
- 力扣538.把二叉搜索树转换为累加树
题目来源: 538.把二叉搜索树转换为累加树 题目: 给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中 ...
- LeetCode系列538—把二叉搜索树转换为累加树
题意 538. 把二叉搜索树转换为累加树 题解 方法一:反序中序遍历 class Solution {private:int sum = 0; public:TreeNode* convertBST( ...
- leetcode 538. 把二叉搜索树转换为累加树 思考分析
题目 给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和. 提醒一 ...
最新文章
- python生成斐波那契_python学习-生成器(generator)及斐波那契;yield
- 大龄屌丝自学笔记--Java零基础到菜鸟--001
- 汇编 头文件 依赖库文件
- Java 参数数后面跟三个点(...)的含义
- mysql错误代码1813_ERROR 1813 (HY000) at line 404: Tablespace for table '`xxx`.`xxxxx`' exists.
- 傅里叶变换表_Numpy库小抄表!主要语法和代码都在这里啦
- 位同步技术中的比相法
- javascript学习系列(2):数组中的filter方法
- 在FLEX中获得当前PLAYER版本等信息.
- 计算机导论 网络,计算机导论(网络).ppt
- dp4--codeVs1043 方格取数
- 数据结构排序系列详解之六 树形选择排序
- python中的列表推导与生成器
- Layui判断Tab栏是否打开,查找Tab栏中的元素
- java计算机毕业设计线上医药用品分销系统设计与实现MyBatis+系统+LW文档+源码+调试部署
- Android性能测试工具(一) 之Emmagee[转载]
- 转载:嵌入式系统综述之二
- Autojs 谁是卧底-炸弹猫计牌辅助
- 寒假之视频压缩笔记——FPGA 视频 拼接器传输 4k(3840x2160)@30hz的架构
- 豆豆趣事[2016年10月]
热门文章
- Nginx转发https
- 生死系列--WuJie
- 运动耳机排行榜,2022年值得推荐的六款运动耳机
- QT_简单时钟设计_看起来像那么回事高端大气上档次?
- AI创作之如何使用Stable Diffusion AI 将自己变成皮克斯动画角色 (教程含完整操作步骤)
- 【Vue粒子动效插件】Vue3之vue-particles实现一个科技粒子动画登录页面,Picker It~
- win10驱动返回56错误
- QT应用编程: windows下调用福熙阅读器COM插件完成PDF开发
- 昌吉学院计算机毕业难不难,昌吉学院考研难吗?一般要什么水平才可以进入?...
- 华南农业大学c语言测试,华南农业大学《C语言程序设计》考卷(8份)