news 2026/3/6 13:39:03

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/3/5 6:06:22

Java基于springboot+vue的毕业生离校管理系统的设计与实现

前言 毕业生离校管理系统是一款专为教育机构设计的软件工具,目的是简化和自动化毕业生在完成学业后离开学校前所需完成的多项手续。通过使用毕业生离校管理系统,学校管理人员可以高效地跟踪每位毕业生的离校状态,确保所有必要的步骤都得到妥善…

作者头像 李华
网站建设 2026/3/5 18:37:42

OpenMV中HOG特征提取全面讲解

在OpenMV上玩转HOG特征:从原理到实战的完整指南你有没有遇到过这样的场景?想在一块小小的MCU上做物体识别,却发现模型太大跑不动、训练数据不够、功耗又高得离谱。这时候,与其硬上深度学习,不如回头看看那些“老派但靠…

作者头像 李华
网站建设 2026/3/6 3:18:53

8个AI论文生成平台测评,降重与写作功能深度解析

在众多AI论文工具中,选择一款适合自己需求的平台可能令人眼花缭乱。本文将对比8款热门工具,重点聚焦降重、降AIGC率、写论文等功能。工具排名基于实测数据和用户反馈,确保客观实用性。以下是简要排行表(基于效率、准确性和易用性&…

作者头像 李华
网站建设 2026/3/5 4:55:16

8个AI论文改写工具评测,降重与写作功能全面分析

在众多AI论文工具中,选择一款适合自己需求的平台可能令人眼花缭乱。本文将对比8款热门工具,重点聚焦降重、降AIGC率、写论文等功能。工具排名基于实测数据和用户反馈,确保客观实用性。以下是简要排行表(基于效率、准确性和易用性&…

作者头像 李华