Leetcode 538:把二叉搜索树转化为累加树

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

解题思路:

其实就是相当于反中序遍历,然后当前结点的值加上之前遍历结点值的和。

java 复制代码
public class title538 {

    int sum=0;   //sum为之前节点的和
    public TreeNode convertBST(TreeNode root) {
        traversal(root);
        return root;
    }

    //反中序遍历
    public void traversal(TreeNode root){
        if(root==null) return;
        //遍历顺序为 右,中,左
        traversal(root.right);
        root.val=root.val+sum;
        sum=root.val;
        traversal(root.left);
    }
}
相关推荐
爱编程的鱼1 分钟前
想学编程作为今后的工作技能,学哪种语言适用性更强?
开发语言·算法·c#·bug
yq146828609019 分钟前
C (统计二进制中“1“的个数)
c语言·开发语言·算法
被AI抢饭碗的人26 分钟前
算法题(254):灾后重建
算法·leetcode·职场和发展
Mos_x27 分钟前
15.<Spring Boot 日志>
java·后端
mm-q291522272929 分钟前
Java并发编程从入门到进阶 多场景实战
java·开发语言
深度学习机器33 分钟前
RAG的另一种思路,基于文档树结构的推理型检索
人工智能·算法·架构
Violet_YSWY36 分钟前
任何数据结构的构造或初始化,都应指定大小,避免数据结构无限增长吃光内存【示例】
java·数据结构
深度学习机器41 分钟前
Agent架构新方向?Claude Skills工作原理解析
人工智能·算法·架构
SimonKing44 分钟前
你的项目还在用MyBatis吗?或许这个框架更适合你:Easy-Query
java·后端·程序员
nice_lcj52044 分钟前
认识多线程:单例模式
java·开发语言·单例模式