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);
    }
}
相关推荐
lay_liu6 分钟前
springboot 文件下载
java·spring boot·后端
Flittly6 分钟前
【SpringAIAlibaba新手村系列】(11)Embedding 向量化与向量数据库
java·笔记·spring·ai·springboot
Darkwanderor8 分钟前
什么数据量适合用什么算法
c++·算法
workflower33 分钟前
AI制造-推荐初始步骤
java·开发语言·人工智能·软件工程·制造·需求分析·软件需求
zc.ovo36 分钟前
河北师范大学2026校赛题解(A,E,I)
c++·算法
py有趣42 分钟前
力扣热门100题之环形链表
算法·leetcode·链表
py有趣1 小时前
力扣热门100题之回文链表
算法·leetcode·链表
ACGkaka_2 小时前
SimpleDateFormat 线程安全问题及修复方案
java·jvm·安全