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);
    }
}
相关推荐
认真敲代码的小火龙5 分钟前
【JAVA项目】基于JAVA的医院管理系统
java·开发语言·课程设计
Predestination王瀞潞7 分钟前
Java EE开发技术 (报错解决 兼容问题 及 Jakara EE Web 官方手册提供的API接口聚合包)
java·java-ee·jstl·jakara背景
断剑zou天涯8 分钟前
【算法笔记】Manacher算法
java·笔记·算法
梦未21 分钟前
Spring控制反转与依赖注入
java·后端·spring
喜欢流萤吖~22 分钟前
Lambda 表达式
java
ZouZou老师39 分钟前
C++设计模式之适配器模式:以家具生产为例
java·设计模式·适配器模式
monster000w1 小时前
大模型微调过程
人工智能·深度学习·算法·计算机视觉·信息与通信
曼巴UE51 小时前
UE5 C++ 动态多播
java·开发语言
小小晓.1 小时前
Pinely Round 4 (Div. 1 + Div. 2)
c++·算法
SHOJYS1 小时前
学习离线处理 [CSP-J 2022 山东] 部署
数据结构·c++·学习·算法