LeetCode538 把二叉搜索树转为累加树

技术LeetCode538 把二叉搜索树转为累加树 LeetCode538 把二叉搜索树转为累加树题目
给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum T

LeetCode538将二叉查找树转化为积累树。

题目

给出二叉查找树的根节点,它有不同的节点值。请将其转换为更大和树,以便每个节点的新值等于原始树中大于或等于node.val的值之和。

提醒二叉查找树满足以下限制:

节点的左子树只包含键小于节点键的节点。

节点的右子树仅包含键大于该节点的键的节点。

左右子树也必须是二分搜索法树。

注:本问题同1038:3359 leet code-cn.com/problems/binary-search-tree-to-great-sum-tree/

例1:

输入:[4,1,6,0,2,5,7,null,null,3,null,null,8]

输出:[30,36,21,36,35,26,15,null,null,33,null,null,8]

例2:

输入:root=[0,null,1]

输出:[1,空,1]

例3:

输入:root=[1,0,2]

输出:[3,3,2]

例4:

输入:root=[3,2,4,1]

输出:[7,9,4,10]

提示:

树中的节点数介于0和104之间。

每个节点的值在-104和104之间。

树中的所有值都彼此不同。

给定的树是二叉查找树。

方法

递归法

时间复杂度:O(n),其中n是二叉查找树的节点数。每个节点只遍历一次。

空间的复杂性:O(n)

解决方案类{

private int sum=0;

公共树节点转换器(树节点根){ 0

if(root!=null){ 0

convert BST(root . right);

root.val=root.val总和;

sum=root.val

convert BST(root . left);

}

返回根;

}

}

Morris 遍历

时间复杂度:O(n),其中n是二叉查找树的节点数。每个节点只遍历一次。

空间的复杂性:O(1)

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/143787.html

(0)

相关推荐

  • keka解压后怎么安装不了软件了(keka解压软件安装说明)

    技术Keka for Mac压缩解压工具怎么用今天就跟大家聊聊有关Keka for Mac压缩解压工具怎么用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Keka

    攻略 2021年12月24日
  • 微信小程序模拟零钱(微信小程序中的零钱通)

    技术Java模仿微信如何实现零钱通简易功能本篇文章为大家展示了Java模仿微信如何实现零钱通简易功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1. 需求描述使用Java 开发

    攻略 2021年12月14日
  • flask中orm增删改查操作

    技术flask中orm增删改查操作 flask中orm增删改查操作flask中orm增删改查操作
    一、创建表
    # model.py
    import datetime
    from sqlalchemy imp

    礼包 2021年11月7日
  • 图解laravel请求的完整生命周期(laravel 判断模型某值持续不变)

    技术Laravel模型时间戳使用小技巧有哪些这篇文章主要介绍Laravel模型时间戳使用小技巧有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!默认情况下,Laravel Eloquent 模型

    攻略 2021年12月20日
  • 马克笔画风景,请问一般初一要用马克笔吗

    技术马克笔画风景,请问一般初一要用马克笔吗自来水笔也叫钢笔马克笔画风景。不过自来水笔,还有一种是水粉自来水笔,适用于创作绘画的,不知道你说的是哪一种,我个人比较喜欢水粉自来水笔,因为他好控制。马克笔上色会容易脏,而且复涂

    生活 2021年10月23日
  • ACS与PL/SQL的工作情况分析

    技术ACS与PL/SQL的工作情况分析本篇内容主要讲解“ACS与PL/SQL的工作情况分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ACS与PL/SQL的工作情况分析”吧

    攻略 2021年11月15日