Java中如何把二叉搜索树转换为累加树

技术Java中如何把二叉搜索树转换为累加树这篇文章主要介绍了Java中如何把二叉搜索树转换为累加树,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、题目给

本文主要介绍如何在Java中把二叉查找树转换成一个积累树,具有一定的参考价值。有兴趣的朋友可以参考一下。希望大家看完这篇文章后收获多多。让边肖带你去了解一下。

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

请注意,二叉查找树满足以下限制:

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

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

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

Java中如何把二叉搜索树转换为累加树

从10: 00到10: 00,观察示例图,发现树的遍历顺序是右、中、左,每个节点的值都是按照这个顺序累加的。

Java中如何把二叉搜索树转换为累加树

因为需要累加,所以需要前置指针记录当前遍历节点cur的前一个节点,方便累加。

(1)确定递归函数及返回值

主题需要遍历整个树,同时需要定义一个全局变量pre来保存cur节点的前一个节点的值。

(2)确定递归终止条件

空时终止。

(3)确定单层递归的逻辑

遍历顺序,右,中,左。

一、题目

类别解决方案{

//记录前置节点。

int pre=0;

publicturenodecovertbst(treenoderroot){ 0

//空节点终止。

if(root==null){ 0

returnroot

}

//遍历顺序:右、中、左。

convert BST(root . right);

root.val=pre

pre=root.val

convert BST(root . left);

returnroot

}

}感谢您仔细阅读本文。希望边肖分享的文章《如何将二叉查找树转化为Java中的累积树》对大家有所帮助。也希望大家多多支持和关注行业信息渠道,更多相关知识等着你去学习!

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

(0)

相关推荐

  • 信息安全工程师-软考中级-备考笔记:第十一章 网络物理隔离技术原理与应用

    技术信息安全工程师-软考中级-备考笔记:第十一章 网络物理隔离技术原理与应用 信息安全工程师-软考中级-备考笔记:第十一章 网络物理隔离技术原理与应用第11章 网络物理隔离技术原理与应用
    网络物理隔离概

    礼包 2021年11月14日
  • 小数点英文,1到26的数字译成英文,怎么写

    技术小数点英文,1到26的数字译成英文,怎么写翻译如下小数点英文:1——one2——two3——three4——four5——five6——six7——seven8——eight9——nine10——ten11——ele

    生活 2021年10月28日
  • vue缓存使用方法(vue项目中什么时候用到缓存)

    技术vue的缓存实现方式有哪些这篇文章主要讲解了“vue的缓存实现方式有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue的缓存实现方式有哪些”吧!

    攻略 2021年12月22日
  • 如何理解面向领域的微服务架构

    技术如何理解面向领域的微服务架构本篇内容主要讲解“如何理解面向领域的微服务架构”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何理解面向领域的微服务架构”吧!什么是微服务微服

    攻略 2021年10月23日
  • 初学算法-------递归

    技术初学算法-------递归 初学算法-------递归大部分内容在我的笔记里;
    这里讲一下不能只依靠递归:
    递归中终究还是有一个致命的缺陷就是在递归次数过多时会需要极大的运行空间,甚至会终止程序的运

    礼包 2021年12月5日
  • python操作excel自动化办公(python自动化办公设置excel样式)

    技术Python办公自动化Excel怎么实现这篇文章主要介绍“Python办公自动化Excel怎么实现”,在日常操作中,相信很多人在Python办公自动化Excel怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好

    攻略 2021年12月23日