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);
    }
}
相关推荐
2401_831920743 分钟前
基于C++的爬虫框架
开发语言·c++·算法
我是咸鱼不闲呀4 分钟前
力扣Hot100系列22(Java)——[图论]总结(岛屿数量,腐烂的橘子,课程表,实现Trie(前缀树))
java·leetcode·图论
1104.北光c°4 分钟前
深入浅出 Elasticsearch:从搜索框到精准排序的架构实战
java·开发语言·elasticsearch·缓存·架构·全文检索·es
MSTcheng.10 分钟前
【优选算法必修篇——位运算】『面试题 01.01. 判定字符是否唯一&面试题 17.19. 消失的两个数字』
java·算法·面试
weixin_4219226910 分钟前
模板元编程性能分析
开发语言·c++·算法
蹦哒12 分钟前
Kotlin 与 Java 语法差异
java·python·kotlin
2401_8512729912 分钟前
C++中的类型擦除技术
开发语言·c++·算法
左左右右左右摇晃13 分钟前
Java并发——并发编程底层原理
java·开发语言
Liu6288814 分钟前
C++命名空间使用规范
开发语言·c++·算法
tankeven16 分钟前
【无标题】
数据结构·c++·算法