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);
    }
}
相关推荐
H_z___4 小时前
Codeforces Global Round 31 (Div. 1 + Div. 2) A ~ E
数据结构·算法
别惹CC4 小时前
Spring AI 进阶之路05:集成 MCP 协议实现工具调用
java·人工智能·spring
Dylan的码园4 小时前
队列与queue
java·数据结构·链表
小龙报4 小时前
【算法通关指南:算法基础篇 】双指针专题:1.唯一的雪花 2.逛画展 3.字符串 4.丢手绢
c语言·数据结构·c++·人工智能·深度学习·算法·信息与通信
Seven974 小时前
一文讲清楚图论相关算法
java
superman超哥13 小时前
仓颉语言中基本数据类型的深度剖析与工程实践
c语言·开发语言·python·算法·仓颉
韩立学长13 小时前
【开题答辩实录分享】以《自助游网站的设计与实现》为例进行选题答辩实录分享
java·mysql·spring
ss27313 小时前
线程池:任务队列、工作线程与生命周期管理
java·后端
不像程序员的程序媛13 小时前
Spring的cacheEvict
java·后端·spring
Learner__Q13 小时前
每天五分钟:滑动窗口-LeetCode高频题解析_day3
python·算法·leetcode