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);
    }
}
相关推荐
代码飞天2 分钟前
算法与数据结构之又臭又长的表
数据结构·算法
workflower5 分钟前
如何使用设计模式-误区
java·开发语言·设计模式·集成测试·软件工程·需求分析·软件需求
A923A7 分钟前
【洛谷刷题 | 第七天】
算法·模拟·洛谷
故事和你917 分钟前
洛谷-入门4-数组3
开发语言·数据结构·c++·算法·动态规划·图论
人道领域8 分钟前
Day | 12 【苍穹外卖 :导出Excel数据表】
java·后端·sql·servlet·mvc·intellij-idea
毕设源码-朱学姐12 分钟前
【开题答辩全过程】以 校园超市购物系统为例,包含答辩的问题和答案
java
玉树临风ives12 分钟前
atcoder ABC 451 题解
c++·算法·atcoder
_日拱一卒12 分钟前
LeetCode:和为K的子数组
算法·leetcode·职场和发展
zs宝来了14 分钟前
Spring IoC 容器初始化全链路深度解析:从 BeanFactory 到 refresh() 的底层真相
java·后端·spring·ioc·源码解析·java后端
周可温84115 分钟前
动手学RAG
算法