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

Leetcode 538: 把二叉搜索树转换为累加树 将给定的二叉搜索树 (BST) 转化成累加树 (Greater Tree),使得每个节点的值是原树中所有大于或等于该节点值的节点值的和。是一道经典的树问题,考察的是二叉树的遍历、递归思想以及对二叉搜索树 (BST) 特性的理解。熟练掌握这三种解法,能应对几乎所有类似问题! 阅读详情

题目链接:LeetCode 538. 把二叉搜索树转换为累加树

题意:

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

 

例如:

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

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

解题思路:

   由于是二叉搜索树,所以树具有如下性质

  1. 若它的左子树不空,则左子树上所有节点的值均小于它的根节点的值;

  2. 若它的右子树不空,则右子树上所有节点的值均大于它的根节点的值;

  3. 它的左、右子树也分别为二叉搜索树。

  

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
    int sum = 0;
    TreeNode* convertBST(TreeNode* root) {
        if(root != NULL) {
            convertBST(root->right);
            sum += root->val;
            root->val = sum;
            convertBST(root->left);
        }
        return root;
    }
};

 

Megatron-LM中的TP、PP、DP、SP、CP并行 SP主要优化的是激活内存,它沿序列维度切分部分激活,适用于较短序列并行。CP主要解决的是长序列的显存问题,它沿序列维度切分所有激活和输入,并且对注意力机制也进行并行处理。二者可以组合使用,特别是当 TP > 1 并且需要处理长序列时,通过启用 SP 和 CP 可以最大化地优化内存使用和加速计算。 阅读详情

相关推荐

从零开始:DJI-F450无人机硬件组装全流程解析

本文详细解析了DJI-F450无人机的硬件组装全流程,从开箱清点到焊接、机械组装、飞控系统搭建、电路整合及调试试飞。重点介绍了电调焊接、机臂安装、飞控校准等关键步骤的实用技巧和常见问题解决方案,帮助无人机爱好者从零开始完成专业级组装。

weixin_29210759的博客 621

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

给出二叉搜索树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点node的新值等于原树中大于或等于node.val的值之和。 提醒一下,二叉搜索树满足下列约束条件: 节点的左子树仅包含键小于节点键的节点。 节点的右子树仅包含键大于节点键的节点。 左右子树也必须是二叉搜索树。 示例 1: 输入:[4,1,6,0,2,5,7,null,null,null,3,null,null,null,8] 输出:[30,36,21,...

stay hungry ! stay foolish! 383

立创·庐山派-K230-CanMV(嘉楠勘智)开发板通过ATK-ESP8266实现图像识别数据无线传输至原子云

本文详细介绍了如何使用立创·庐山派-K230-CanMV开发板,通过ATK-ESP8266 WIFI模块实现图像识别数据的无线传输至原子云平台。内容包括硬件连接、软件环境搭建、AT指令控制、原子云连接及数据上传的全过程,并提供了实用的调试技巧和常见问题解决方案,为物联网应用开发提供了完整实践指南。

potato的博客 741

Leetcode 538. 把二叉搜索树转换为累加树(递归)

Leetcode 538. 把二叉搜索树转换为累加树(递归) 题目 给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。 提醒一下,二叉搜索树满足下列约束条件: 节点的左子树仅包含键 小于 节点键的节点。 节点的右子树仅包含键 大于 节点键的节点。 左右子树也必须是二叉搜索树。 树中的节点数介于 0 和 10^4 之间。 每个节点的值介于 -10^4 和 10^4 之间。

专注如一的博客 466

Fedora 41上安装钉钉7.6.25,我踩过的那些依赖坑和最终解决方案

本文详细记录了在Fedora 41上安装钉钉7.6.25版本的全过程,包括解决依赖问题、转换deb包为rpm格式、处理libm.so.6错误等关键步骤。通过分享这些实用技巧和最终解决方案,帮助Linux用户顺利在Fedora系统上运行钉钉客户端,提升工作效率。

weixin_30485379的博客 206

《寻秦OL》.ani动画逆向解析:二进制结构与Unity重实现

动画文件格式是游戏资源逆向的核心入口,其本质是一组按特定规则组织的二进制数据流。理解魔数识别、字节序、字段对齐与差分编码等底层原理,是解析非标准格式的关键前提。技术价值在于绕过黑盒协议,直接从静态客户端提取可验证的原始语义;典型应用场景包括老游戏复刻、美术资产抢救、引擎跨平台迁移及教学级逆向训练。本文以《寻秦OL》的`.ani`文件为实例,深入剖析其C风格结构布局、GB2312中文命名、16位定点数旋转表示及帧主序差分存储机制,并基于C#在Unity中完成从字节流到AnimationClip的端到端重建,覆

weixin_30368981的博客 640

[LeetCode] 538、把二叉搜索树转换为累加树

题目描述 给定一个二叉搜索树(Binary Search Tree),把它转换成为累加树(Greater Tree),使得每个节点的值是原来的节点值加上所有大于它的节点值之和。 解题思路 树的题目一定是基于“二叉树三种遍历方式的六种实现方法”,要熟练掌握。 此题不过是变了下形,根据二叉搜索树的性质,要实现题目的要求,要采取right -> root -> left的遍历方式。 参考代码...

aift的专栏 188

win2012 r2 + IIS8.5 伪静态设置脚本映射

win2012 r2 + IIS8.5 伪静态设置脚本映射,网站用的.net fromwork 2.0 ,应用程序池设置了32位支持

xueking87的专栏 3240

Leetcode第538题把二叉搜索树转换为累加树|C语言

题目: 给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。 提醒一下,二叉搜索树满足下列约束条件: 节点的左子树仅包含键 小于 节点键的节点。 节点的右子树仅包含键 大于 节点键的节点。 左右子树也必须是二叉搜索树。 大致思路: 这道题的题意就是,执行过后,本结点的值,等于把原来所有大于本结点值的结点的值相加起来的和。 由于二叉搜索树的中序遍历是有序且非减的,因为题目写明

qq_37397653的博客 214

华为OD机试真题2025双机位B卷 Java&Go 实现【朋友圈个数】

给定一组朋友关系,统计一下该朋友关系网中的朋友圈个数。 朋友圈的定义:一个朋友圈至少由3个朋友组成,且要求同一个朋友圈中的任意两个人都具有直接的朋友关系。 输入描述 输入一个朋友关系列表,如 Fiends =A.B],[A.C],IB,DI,其中的每一个元素 Friendsi表示 Friends[i][0)和 Friends [i][1] 是朋友关系 先输入一个数字 N 代表关系的总数,后面每条关系一行,两个成员以逗号分隔

MISAYAONE的博客 518

基于Python的CT骨料图像分割与STL批量导出完整指南

本文介绍了一套完整的Python解决方案,用于CT骨料图像的分割与STL导出。针对CT图像中颗粒粘连、噪声伪影等技术难点,提出基于分水岭算法的分割策略,结合距离变换与标记控制实现颗粒分离。内容包括环境配置、数据读取与预处理、Otsu阈值分割、分水岭算法实现、表面提取与STL导出等关键步骤。教程提供详细代码及解释,帮助读者从CT体数据出发,最终生成每个颗粒的三维网格文件,便于后续定量分析和数值模拟。

huanghm88的专栏 236

leetcode 538. Convert BST to Greater Tree 二叉搜索树的中序遍历 + DFS

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

JackZhangNJU的专栏 255

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

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

Leetcode 538. 把二叉搜索树转换为累加树1、问题分析2、问题解决3、总结 1、问题分析 题目链接:https://leetcode-cn.com/problems/convert-bst-to-greater-tree/   本质上就是一个二叉树的遍历问题。代码我已经进行了详细的注释,理解应该没有问题,读者可以作为参考,如果看不懂(可以多看几遍),欢迎留言哦!我看到会解答一下。 2、问题解决   笔者以C++方式解决。 #include "iostream" using namespace s

珍惜 8965

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

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

大家觉得写还可以,可以点赞、收藏、关注一下吧! 也可以到我的个人博客参观一下,估计近几年都会一直更新!和我做个朋友吧!https://motongxue.cn 文章目录538. 把二叉搜索树转换为累加树题目描述例如注意分析忽略二叉搜索树条件利用搜索树条件提交结果在这里插入图片描述 538. 把二叉搜索树转换为累加树 题目描述 给定一个二叉搜索树(Binary Search Tree),把它转换成为累加树(Greater Tree),使得每个节点的值是原来的节点值加上所有大于它的节点值之和。 例如 输入:

motongxue的博客 331

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

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

Love Peace 760

LeetCode第538题把二叉搜索树转换为累加树(Python)

LeetCode第538题把二叉搜索树转换为累加树(Python)题目描述解题方法和思路中序遍历实现 题目描述 给定一个二叉搜索树(Binary Search Tree),把它转换成为累加树(Greater Tree),使得每个节点的值是原来的节点值加上所有大于它的节点值之和。 示例1: 输入: 二叉搜索树: 5 / \ ...

qq_21407487的博客 494

leetcode题解538:把二叉搜索树转换为累加树

本文介绍了如何将二叉搜索树转换为累加树的方法。通过递归遍历树结构,从右子树开始处理,利用全局变量pre记录节点值之和,更新当前节点值为原值与pre之和。该方法保持二叉搜索树结构不变,满足每个节点值等于所有大于等于该值的节点值之和的要求。代码采用后序遍历方式,先处理右子树,再更新节点值,最后处理左子树。递归终止条件是遇到空节点时返回NULL。文中通过示例详细说明了递归执行过程,展示了如何将根节点为5、左子节点为3、右子节点为7的树转换为根节点12、左子树10、右子树7的累加树。

2301_80548884的博客 999

LeetCode 538 把二叉搜索树转换为累加树 题解

LeetCode 538 把二叉搜索树转换为累加树 题解 LeetCode链接 给定一个二叉搜索树(Binary Search Tree),把它转换成为累加树(Greater Tree), 使得每个节点的值是原来的节点值加上所有大于它的节点值之和。 输入: 原始二叉搜索树: 5 / \ 2 13 输出: 转换为累加树: 18 / \ 20

qq_39618369的博客 199

LeetCode第538题把二叉搜索树转换为累加树

题目描述 给定一个二叉搜索树(Binary Search Tree),把它转换成为累加树(Greater Tree),使得每个节点的值是原来的节点值加上所有大于它的节点值之和。 解题思路 1、题意理解: 明确什么是二叉搜索树,任意结点的左子树比右子树小则为二叉搜索树 也就是说对于左子树来说,需要加上右子树的值和根节点的值 2、想法: 可以将二叉树排好序,如果我们希望每个结点只访问一次,排序的顺序是从大到小。如果使用中序遍历,我们可以得到从小到大的排序,中序遍历的顺序是left, root, right, 因

LiuXiaoXueer的博客 236

力扣538. 把二叉搜索树转换为累加树 问题求解答

给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。输出:[30,36,21,36,35,26,15,null,null,null,33,null,null,null,8]输入:[4,1,6,0,2,5,7,null,null,null,3,null,null,null,8]节点的左子树仅包含键 小于 节点键的节点。节点的右子树仅包含键 大于 节点键的节点。

m0_63086110的博客 171

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

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

xiaoshiguang3的博客 427

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

力扣 538. 把二叉搜索树转换为累加树(点击查看题目)力扣​leetcode-cn.com题目描述给定一个二叉搜索树(Binary Search Tree),把它转换成为累加树(Greater Tree),使得每个节点的值是原来的节点值加上所有大于它的节点值之和。例如:输入: 原始二叉搜索树: 5 / 2 1...

weixin_39580715的博客 94

Leetcode—538.把二叉搜索树转换为累加树【中等】

运行结果 之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!

Atticus的博客 248

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

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

2301_80211119的博客 1048
上一篇: LeetCode 78. 子集
下一篇: ProjectEuler Problem 18.Maximum path sum I
error0318
博客等级 码龄9年 57粉丝 515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值