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)

相关推荐

  • Flex布局新旧混合写法分析

    技术Flex布局新旧混合写法分析本篇内容主要讲解“Flex布局新旧混合写法分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Flex布局新旧混合写法分析”吧!旧语法篇定义容器

    攻略 2021年11月15日
  • 如何添加Lombok支持和使用Thymeleaf

    技术如何添加Lombok支持和使用Thymeleaf本篇文章给大家分享的是有关如何添加Lombok支持和使用Thymeleaf,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小

    攻略 2021年11月9日
  • HBase原理、基本概念、基本架构-3

    技术HBase原理、基本概念、基本架构-3 HBase原理、基本概念、基本架构-3HBase是Apache Hadoop的数据库,能够对大型数据提供随机、实时的读写访问。HBase的目标是存储并处理大型

    礼包 2021年12月22日
  • Java多线程概念知识点有哪些

    技术Java多线程概念知识点有哪些这篇文章主要介绍“Java多线程概念知识点有哪些”,在日常操作中,相信很多人在Java多线程概念知识点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”

    攻略 2021年11月24日
  • java怎么设置每天定时任务的框架(java定时任务存在什么问题)

    技术java中常用的定时任务框架单体是怎样的本篇文章为大家展示了java中常用的定时任务框架单体是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、Timer+TimerT

    攻略 2021年12月21日
  • 青团子,青团常温下放了5天,还能吃吗

    技术青团子,青团常温下放了5天,还能吃吗你好青团子,很高兴回答你的问题我的建议是不要吃了,因为五天的时间确实比较久了。通常两三天内吃掉最佳。下面介绍一下保存的方法:
    青团可以放冰箱保存,因为青团不允许添加防腐剂,保质期往

    生活 2021年10月28日