news 2026/7/7 5:34:35

LC.538 | 把二叉搜索树转换为累加树 | 树 | 逆向中序遍历(右-根-左)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LC.538 | 把二叉搜索树转换为累加树 | 树 | 逆向中序遍历(右-根-左)

输入:二叉搜索树根节点root(节点值各不相同)。

要求:将其转换为累加树(Greater Sum Tree):
每个节点的新值 = 原树中所有大于等于该节点值的节点值之和。

输出:转换后的树根节点TreeNode*(原地修改后返回root)。


思路:

BST 的中序遍历(左-根-右)是递增序列。
那我们如果想做“后缀和”(从大到小累加),就把遍历方向反过来:

逆向中序遍历:右 -> 根 -> 左
访问顺序从大到小,维护一个滚动累加sum

遍历到某个节点时:

  1. 先走右子树(更大的值先处理)
  2. sum += node->val
  3. node->val = sum(把当前节点改成“>= 自己的总和”)
  4. 再走左子树

补充:
也能用“两次正序中序”做:第一次中序存有序数组并做后缀和映射,第二次再中序回填。
但那是 O(N) 额外空间;本题一趟逆向中序就能原地搞定。


复杂度:

  • 时间复杂度:O(N)
  • 空间复杂度:O(H)(递归栈,H 为树高)

classSolution{public:TreeNode*convertBST(TreeNode*root){sum=0;reverseInorder(root);returnroot;}private:intsum;voidreverseInorder(TreeNode*node){if(node==nullptr)return;reverseInorder(node->right);sum+=node->val;node->val=sum;reverseInorder(node->left);}};
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/7 11:53:23

Java计算机毕设之基于springboot的旧物回收商城系统的设计与实现基于Springboot的旧物置换网站实现(完整前后端代码+说明文档+LW,调试定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/7/7 1:28:12

竞赛毕业设计作品---【芳心科技】F. 阿里云智能温室监测系统

实物效果图:实现功能:温湿度(DHT11)。湿度低于阈值自动浇水, 到达阈值停止浇水。温度高于阈值打开排风扇,降到正常阈值区间停止工作 , 温度低于阈值蜂鸣器报警。土壤ph值检测 :数值异…

作者头像 李华
网站建设 2026/7/6 22:52:56

Python中的数据结构(容器)之列表(list)

Python中的数据结构(容器)之列表(list) 容器用于存储多个数据,是基础语法的核心组成,常用的有 4 种: 列表(list)—— 有序、可变、可重复字典(dict&#xff0…

作者头像 李华
网站建设 2026/7/7 0:31:27

NetActuate扩建丹佛数据中心提升混合云与灾备能力

来源:维度网-全球简讯 全球基础设施与网络服务提供商NetActuate宣布,已完成对其位于美国丹佛的数据中心的重要升级。此次扩建显著增加了该中心的网络、云计算与算力资源容量,目的是满足市场对混合云与灾备需求的持续增长。 NetActuate表示&a…

作者头像 李华
网站建设 2026/7/7 6:08:35

ModbusRTU报文结构完整指南(主从模式)

深入理解ModbusRTU:从报文结构到主从通信实战 在工业现场,你是否曾遇到过这样的场景? 一台PLC迟迟收不到电表的数据,HMI界面上电压值一直显示为0; 或是变频器的启停指令发出去后毫无反应,排查半天才发现…

作者头像 李华