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 天前
下一个更大元素(一)
数据结构·算法
twj_one1 天前
Arthas使用
java
MobotStone1 天前
从金鱼记忆到过目不忘:Transformer 如何让AI真正理解一句话?
算法
lizz311 天前
C++模板编程:从入门到精通
java·开发语言·c++
炽烈小老头1 天前
【每天学习一点算法 2025/12/19】二叉树的层序遍历
数据结构·学习·算法
shoubepatien1 天前
JAVA -- 05
java·开发语言
寰天柚子1 天前
Java并发编程中的线程安全问题与解决方案全解析
java·开发语言·python
memgLIFE1 天前
Springboot 分层结构
java·spring boot·spring
shoubepatien1 天前
JAVA -- 08
java·后端·intellij-idea
kong79069281 天前
Java新特性-(二)Java基础语法
java·新特性·java 基础语法