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);
    }
}
相关推荐
jyan_敬言13 小时前
【算法】高精度算法(加减乘除)
c语言·开发语言·c++·笔记·算法
柒.梧.13 小时前
深入浅出理解原子操作:从单核到多核的实现原理
java
树獭叔叔13 小时前
内存价格被Google打下来了?: TurboQuant对KVCache的量化
算法·aigc·openai
旖-旎13 小时前
前缀和(矩阵区域和)(8)
c++·算法·leetcode·前缀和·动态规划
Moe48813 小时前
Redis 缓存三大经典问题:穿透、击穿与雪崩
java·后端·面试
月落归舟13 小时前
排序算法---(一)
数据结构·算法·排序算法
liuyao_xianhui13 小时前
优选算法_翻转链表_头插法_C++
开发语言·数据结构·c++·算法·leetcode·链表·动态规划
赫瑞13 小时前
Java中的最长公共子序列——LCS
java·开发语言
于先生吖13 小时前
零基础开发国际版同城出行平台 JAVA 顺风车预约系统实战教学
java·开发语言
Book思议-13 小时前
【数据结构实战】循环队列FIFO 特性生成六十甲子(天干地支纪年法),实现传统文化里的 “时间轮回”
数据结构·算法·