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)

相关推荐

  • golang中rune类型怎么使用

    技术golang中rune类型怎么使用本篇内容介绍了“golang中rune类型怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,

    攻略 2021年12月1日
  • aabc的四字词语有哪些,aabc含反义词的四字词语

    技术aabc的四字词语有哪些,aabc含反义词的四字词语面面相觑aabc的四字词语有哪些、彬彬有礼、孜孜不倦、侃侃而谈、娓娓道来、惴惴不安、翩翩起舞、栩栩如生沾沾自喜、步步为营、炯炯有神、咄咄逼人研究研究、讨论讨论、商量

    生活 2021年10月22日
  • 内衣码数对照表,胸罩分为哪几个等级,哪个最大

    技术内衣码数对照表,胸罩分为哪几个等级,哪个最大1.罩杯尺寸罩杯尺寸=胸围-下胸围(例如内衣码数对照表:10cm=A罩杯.13cm=B罩杯.15cm=C罩杯18cm=D罩杯.20cm=E罩杯)
    胸罩罩杯尺寸说明表
    罩杯型

    生活 2021年10月24日
  • 个人建设银行账户查询,建设银行个人账户余额查询

    技术个人建设银行账户查询,建设银行个人账户余额查询建行银行卡查询余额的办法有个人建设银行账户查询:1.网点查询:持卡人携带身份证、银行卡前往任一建行营业厅,向工作人员提出查询余额申请,在验证个人身份后即可查询。2.ATM

    生活 2021年10月22日
  • 淘宝盖楼活动怎么做,手机淘宝店铺怎么创建活动页面

    技术淘宝盖楼活动怎么做,手机淘宝店铺怎么创建活动页面手机淘宝店铺创建活动页面步骤如下:在手机登陆到淘宝然后依次点击“卖家中心”-“店铺管理”-“手机淘宝店铺”然后在店铺设置下面点面点击“无线活动管理”;在进入的页面下点击

    生活 2021年10月25日
  • 引擎ECS框架中system的语法糖是怎么实现的

    技术引擎ECS框架中system的语法糖是怎么实现的引擎ECS框架中system的语法糖是怎么实现的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。集(B

    攻略 2021年11月24日