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)

相关推荐

  • eclipse中的默认编码方式是什么(eclipse编码格式在哪里)

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

    攻略 2021年12月23日
  • 多校NOIP31

    技术多校NOIP31 多校NOIP31T1:考场上认为是简单题首先的思路为容斥原理,考虑钦定行或列满足条件
    用总情况数减去不合法情况数即可,考虑的是反演,问
    题如下:不合法方案数的计算公式,于是考虑二维

    礼包 2021年11月19日
  • java中实现时间差的计算

    技术java中实现时间差的计算 java中实现时间差的计算java中实现时间差的计算
    代码编写
    package com.excel.demo;import java.text.DateFormat;
    i

    礼包 2021年12月6日
  • k8s上的火花与k8s操作器上的火花的对比是怎样的

    技术spark on k8s与spark on k8s operator的对比是怎样的这期内容当中小编将会给大家带来有关spark on k8s与spark on k8s operator的对比是怎样的,文章内容丰富且以

    攻略 2021年12月15日
  • 如何终结mysql中文乱码

    技术如何终结mysql中文乱码本篇文章给大家分享的是有关如何终结mysql中文乱码,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。我自己都不知道为了中文问题烦

    攻略 2021年11月17日
  • Win10系统下如何将VSCode配置到右键菜单中

    技术Win10系统下如何将VSCode配置到右键菜单中这篇文章将为大家详细讲解有关Win10系统下如何将VSCode配置到右键菜单中,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。教程新

    攻略 2021年11月12日