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);
    }
}
相关推荐
listhi5202 小时前
双目立体视觉中的彩色SAD算法
算法
爱coding的橙子2 小时前
Day87:2.12:leetcode 动态规划8道题,用时3h
算法·leetcode·动态规划
星火开发设计2 小时前
虚析构函数:解决子类对象的内存泄漏
java·开发语言·前端·c++·学习·算法·知识
2501_901147833 小时前
幂函数实现的优化与工程思考笔记
笔记·算法·面试·职场和发展·php
好大的月亮3 小时前
中值法排序及LexoRank排序算法简述
java·算法·排序算法
TongSearch3 小时前
Tongsearch分片的分配、迁移与生命周期管理
java·服务器·数据库·elasticsearch·tongsearch
闻缺陷则喜何志丹3 小时前
【拆位法】P9277 [AGM 2023 资格赛] 反转|普及+
c++·算法·位运算·拆位法
androidstarjack3 小时前
2026 年 IM 即时通讯方案选型实践:4 家主流厂商对比分析
java·spring·spring cloud
2301_815357703 小时前
SpringBoot两大核心数据库连接池:HikariCP与Druid深度实践
java·spring boot
草莓熊Lotso3 小时前
Linux 程序地址空间深度解析:虚拟地址背后的真相
java·linux·运维·服务器·开发语言·c++·人工智能