LeetCode – 538. Convert BST to Greater Tree

LeetCode – 538. Convert BST to Greater Tree

大家好,又见面了,我是全栈君。

Given a Binary Search Tree (BST), convert it to a Greater Tree such that every key of the original BST is changed to the original key plus sum of all keys greater than the original key in BST.

Example:

Input: The root of a Binary Search Tree like this:
              5
            /   \
           2     13

Output: The root of a Greater Tree like this:
             18
            /   \
          20     13

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
public class Solution {
    int sum = 0;
    public TreeNode convertBST(TreeNode root) {
        if (root == null)
            return null;
        
        convert(root);
        return root;
    }
    
    public void convert(TreeNode root) {
        if (root == null)
            return ;
        convert(root.right);
        root.val += sum;
        sum = root.val;
        convert(root.left);
    }
    
}

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/108253.html原文链接:https://javaforall.net

(0)
上一篇 2022年3月6日 上午6:00
下一篇 2022年3月6日 上午6:00


相关推荐

  • 计算机网络试题及答案(史上最全)

    计算机网络试题及答案(史上最全)计算机网络试题及答案 一 一 填空题 1 所谓计算机网络 会议是利用通信设备和线路将地理位置不同的 功能独立的多个计算机系统互连起来 以功能完善的网络软件实现网络中资源共享和数据通讯的系统 2 计算机网络如果按作用范围进行分类 可分为广域网 WAN 局域网 LAN 和城域网 MAN 3 网络协议通常采用分层思想进行设计 OSIRM 中的协议分为 7 层 而 TCP IPRM 中协议分为 4 层 4 在 TCP IPRM 中 用于互联层的协议主要有 ARP IP RARP ICMP 和 I

    2026年3月17日
    2
  • Nano-Banana软萌拆拆屋效果展示:运动套装三件套平铺布局图

    Nano-Banana软萌拆拆屋效果展示:运动套装三件套平铺布局图

    2026年3月16日
    2
  • TortoiseSVN打分支、合并分支、切换分支

    TortoiseSVN打分支、合并分支、切换分支SVN 几个重要文件夹说明 我们一般习惯性在创建 repository 仓库后 再在刚才创建的仓库里面再创建 trunk branches tags 这三个文件夹 而不是直接将项目提交到仓库的根目录下 虽然直接将项目分享到仓库的 root 根目录下也是可以的 但是我们一般不这么做 主要目的是 为了给项目各个阶段 各个版本归类 分阶段存储 并行开发 trunk 文件夹 主干 我们一般把项目

    2026年3月19日
    2
  • SpringBoot整合SpringBatch

    SpringBoot整合SpringBatchSpringBatch简介SpringBatch是一个轻量级的综合性批处理框架,可用于开发企业信息系统中那些至关重要的数据批量处理业务.SpringBatch基于POJO和Spring框架,相当容易上手使用,让开发者很容易地访问和利用企业级服务.SpringBatch不是调度(scheduling)框架.因为已经有很多非常好的企业级调度框架,包括商业性质的和开源的,例如Quartz,T…

    2022年5月28日
    155
  • 用js来实现那些数据结构16(图02-图的遍历)

    上一篇文章我们简单介绍了一下什么是图,以及用JS来实现一个可以添加顶点和边的图。按照惯例,任何数据结构都不可或缺的一个point就是遍历。也就是获取到数据结构中的所有元素。那么图当然也不例外。这篇文章

    2022年3月25日
    39
  • pycharm搭建python环境_pycharm如何配置编译环境

    pycharm搭建python环境_pycharm如何配置编译环境1.安装python27双击执行python-2.7.15.msi,选择装到根目录,建议d:\Python27。一路下一步,直到完成。安装完成之后,打开cmd,输入:python,如果显示以下内容则说明安装python成功如果提示命令不存在则需要设置环境变量。windows:右键我的电脑–属性–高级系统设置–高级–环境变量–系统变量找到path项,加上值,D:\Python27;D:\P…

    2022年8月25日
    12

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号