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);
    }
}
相关推荐
Z1Jxxx1 分钟前
C++ P1150 Peter 的烟
数据结构·c++·算法
踮起脚看烟花8 分钟前
chapter10_泛型算法
c++·算法
笨笨饿8 分钟前
# 52_浅谈为什么工程基本进入复数域?
linux·服务器·c语言·数据结构·人工智能·算法·学习方法
Code-keys9 分钟前
ADSP/ARM 性能/稳定性排查专栏总述
arm开发·算法·边缘计算·dsp开发
山栀shanzhi13 分钟前
C++四大常见排序对比
c++·算法·排序算法
Ivanqhz13 分钟前
LLVM IR 转 SMT公式
java·开发语言
一个心烑17 分钟前
奖项届定获取方式
java
小红的布丁18 分钟前
Reactor 模型详解:单 Reactor、主从 Reactor 与 Netty 思想
android·java·开发语言
weixin_7042660524 分钟前
redis 的集群
java·数据库·redis
被摘下的星星26 分钟前
Java的类加载
java·开发语言