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);
    }
}
相关推荐
用户03048059126312 小时前
Spring Validation教程
java
Hello.Reader12 小时前
DTO / VO / BO / Entity 分层到底怎么用?
java·分层
CQ_YM12 小时前
数据结构之树
数据结构·算法·
云梦谭12 小时前
AI 生成的FreeSWITCH 呼出流程深度分析freeswitch-1.10.12.-release
java·前端·php
某林21212 小时前
SLAM 建图系统配置与启动架构
人工智能·stm32·单片机·嵌入式硬件·算法
随机昵称_12345612 小时前
RSA私钥解密乱码问题
java·非对称加密
龙亘川12 小时前
【课程2.4】开发环境搭建:K8s集群部署、芋道框架集成、ThingsBoard对接
java·容器·kubernetes·智慧城市·智慧城市一网统管 ai 平台
不穿格子的程序员12 小时前
从零开始写算法——矩阵类题:图像旋转 + 搜索二维矩阵 II
线性代数·算法·矩阵
罗湖老棍子12 小时前
Knight Moves(信息学奥赛一本通- P1257)
c++·算法·bfs
pyniu12 小时前
项目实站day7--功能之营业额统计,用户数量统计
java·开发语言·spring boot·spring