数据结构-将升序数组转化为平衡二叉搜索树-java

2023-11-17

1.题目

给定一个升序排序的数组,将其转化为平衡二叉搜索树(BST).
平衡二叉搜索树指树上每个节点 node 都满足左子树中所有节点的的值都小于 node 的值,右子树中所有节点的值都大于 node 的值,并且左右子树的节点数量之差不大于1.

2.代码

public class Test {

      public static class TreeNode {
          public TreeNode(int val) {
              this.val = val;
          }
            int val = 0;
            TreeNode left = null;
            TreeNode right = null;
      }

    public static TreeNode sorted (int[] num,int left,int right) {
        // write code here
        if (left>right){
            return null;
        }
        int mid = (left+right+1)/2;

        TreeNode treeNode = new TreeNode(num[mid]);
        treeNode.left  = sorted(num, left, mid-1);  // 构建左子树
        treeNode.right = sorted(num, mid+1, right);  // 构建右子树
        return treeNode;
    }

    public static TreeNode sortedArrayToBST (int[] num) {
        // write code here
        return sorted(num,0,num.length-1);
    }

    public static void main(String[] args) {

    }
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据结构-将升序数组转化为平衡二叉搜索树-java 的相关文章

  • CompletableFuture:whenCompleteAsync() 不允许我重新抛出异常

    我是 CompletableFuture 世界的新手 我正在尝试做一些负面测试 以允许我故意抛出异常的方式 该异常将决定通过 失败 这是代码片段 protected CompletableFuture
  • 从字符串中删除多个子字符串 - Java

    我需要从给定字符串中删除多个子字符串 例子 String exclude one two three String input if we add one and two we get three 我希望我的程序从输入字符串中删除所有出现的
  • SWT:如何进行高质量图像调整大小

    我的应用程序需要调整 ImageData 的大小 不幸的是 我还没有通过 GC 开启抗锯齿和高插值 或 ImageData scaledTo 获得我想要的结果 生成的图像质量太低 无法接受 进行高质量 ImageData 调整大小的最佳方法
  • cygwin有java sdk吗?

    cygwin有java sdk吗 如果有一个使用 cygwin 文件系统和 X windows 进行显示的本机 cygwin 实现 那就太好了 不幸的是我不知道这样的版本 我认为移植 OpenJDK 也需要付出很大的努力 但我还没有尝试过
  • 如何测试 Jersey REST Web 服务?

    我已经编写了一个 Restful Web 服务 并且必须使用 JUnit4 对其进行测试 我已经使用 Jersey Client 编写了一个客户端 但想知道我是否只能使用 junit4 测试我的服务 至少有人可以帮我提供样品吗 我的休息服务
  • JTree 避免重新加载后崩溃

    我正在尝试找到解决崩溃问题的方法JTree重新加载后 情况 JTree Office A Office A 1 Office A 1 1 Office A 1 2 Office B Office B 1 Office B 1 1 Offic
  • 视频文件转换/转码 Google App Engine

    我想启动一个云计算项目 其简单任务是 接收上传的视频文件 对它们进行一些转码 转换 允许用户下载 流式传输生成的文件 我刚在想ffmpeg作为集成在的外部命令行工具Java Google App engine Application 由于很
  • 克隆 dom.Document 对象

    我的目的是将xml文件读入Dom对象 编辑dom对象 其中涉及删除一些节点 完成此操作后 我希望将 Dom 恢复到其原始状态 而不实际解析 XML 文件 无论如何 我可以克隆第一次解析 xml 文件后获得的 dom 对象吗 这个想法是避免一
  • 如何将 Cucumber 中的数据表转换为对象列表?

    原标题 Java 中的 Cucumber DataTables 中的标量是什么意思 From 参考 Java 提供了几种标量类型 这些包括原始数字 类型 加上布尔值和字符 每个标量 原始 类型都有一个关联的包装类或 参考类型 阅读javad
  • Logback 配置在单行上有异常吗?

    我的日志被提取 传输并合并到 elasticsearch 中 多行事件很难跟踪和诊断 有没有办法使用收集器和正则表达式将异常行分组到单个记录中登录配置 https logback qos ch manual layouts html xTh
  • 声纳要求将这一领域定为最终目标

    我的程序中有以下代码 在与 Maven 集成后 我正在运行 SonarQube 5 对其进行代码质量检查 我面临这个错误 将此 public static processStatus 字段设为最终字段 将此 public static pr
  • SQLiteAssetHelper 甚至在从资产文件夹复制数据库之前就导致立即崩溃

    https github com jgilfelt android sqlite asset helper https github com jgilfelt android sqlite asset helper 我要从SQLiteOpe
  • 如何使 JFileChooser 仅显示具有某些特定名称 Java 的文件夹

    有什么方法可以让 JFileChooser 加载时仅显示名称为 Hello 的文件夹 这是我的代码 它显示所有文件夹以及扩展名为 py 和 java 的文件 我想添加文件夹名称限制 FileNameExtensionFilter filte
  • 抛出 UnsupportedOperationException

    因此其中一种方法的描述如下 public BasicLinkedList addToFront T data 该操作无效 对于排序列表 将生成 UnsupportedOperationException 使用消息 排序列表的操作无效 我的代
  • 使用mapstruct映射不同类型列表的元素

    我们正在映射一个对象 该对象具有一个对象列表 这些对象都实现了父接口 但可能具有不同的实现 但当我们映射列表时 似乎只有来自 ParentClass 的值被映射 而不是来自子类的值 但直接映射子进程就可以了 public class Par
  • jsch - 发送特殊键(CTRL-C、CTRL-D 等)

    我需要向远程终端发送特殊密钥 如何使用 JSCH 做到这一点 Thanks Walter 尝试发送两个字节 0x03 0x04 Check ASCII 表 http www bbdsoft com ascii html了解更多
  • Maven编译错误:包不存在

    我正在尝试向现有企业项目添加 Maven 支持 这是一个多模块项目 前 2 个模块编译和打包没有问题 但我面临编译错误 我尝试在多个模块中使用相同的依赖项 我的结构是 gt parent gt pom xml gt module 1 gt
  • 旧的和奇异的 JVM 上 java.io.BufferedInputStream 的默认缓冲区大小是多少?

    我一直在为一篇关于以下内容的博客文章进行一些研究java io BufferedInputStream和缓冲区 显然 多年来 默认值已从区区 512 字节增长到 8192 字节 冒昧地 Sun 的 Java 7 实现 甚至在JDK 1 1
  • 将Json字符串映射到java中的map或hashmap字段

    假设我从服务器返回了以下 JSON 字符串 response imageInstances one id 1 url ONE two id 2 url TWO 杰克逊代码大厦 JsonProperty 我怎样才能得到HashMap对象出来了
  • Encog:BasicNetwork:无需预先构建数据集的在线学习

    我正在尝试使用 encog 库作为强化学习问题的函数逼近器 更准确地说 我正在尝试启动并运行多层感知器 BasicNetwork 由于我的代理将根据我选择的任何 RL 算法以某种方式探索世界 因此我无法预先构建任何 BasicNeuralD

随机推荐

  • Python中一些语句的简洁写法

    Python拾珍 Python 提供了不少并不是完全必需的功能 使用这些功能可以写出更简洁 更可读或者更高效的代码 甚至有时候三者兼得 当然 不使用这些功能 我们依然可以写出好代码 阅读一些开源项目 github上很常见 经常可以看到这种简
  • 博士的年薪一般是多少万?

    作者 Dr YaIRhttps www zhihu com question 546293852 answer 3035449200 中科院北京某所的土博士毕业 拿到了中科院优博 留在中科院做助理研究员 工作2年了 本人不在院士组 不在杰青
  • MD5学习总结

    1 MD5简介 MD5 即消息摘要算法第五版 是一种被广泛使用的密码散列函数 散列算法的基本原理是 进行数据 如一段文字 运算 将原始数据变为另一段固定长度的值 MD5 可以产生出一个 128位 16字节 的散列值 hash value 用
  • kubeadm方式部署k8s最新版本V1.26.2

    Kubernetes核心概念 Master主要负责资源调度 控制副本 和提供统一访问集群的入口 核心节点也是管理节点 Node是Kubernetes集群架构中运行Pod的服务节点 Node是Kubernetes集群操作的单元 用来承载被分配
  • C++将一组数随机分成几个小组

    在生活中难免会遇到需要对一群人进行拆分小组 对于大的课题组的研究生还会分组开组会汇报确定名单这个事情 针对这些问题写出了下面的代码 include
  • python学习笔记之多线程练习ThreadPoolExecutor,map,submit

    主要练习了ThreadPoolExecutor map和submit的区别 推荐使用submit更灵活 import os import random import threading import requests as rq impor
  • Elementui - 下拉框(el-dropdown-menu组件)的使用方法

    Elementui 下拉框 el dropdown menu组件 的使用方法 官方文档 简单样式 此为指令事件 具体效果请看文档
  • 2023浙江省赛“信息安全管理与评估“--Reverse部分全部解析(高职组)

    2022全国职业技能大赛 信息安全管理与评估 高职组 任务书 2022全国职业技能大赛 信息安全管理与评估 任务书 第一阶段竞赛项目试题 第二阶段竞赛项目试题 第三阶段竞赛项目试题 任务3 Reverse 80分 2022全国职业技能大赛
  • GLES3.0中文API-glGetProgramInterface

    名称 glGetProgramInterface 查询程序中接口的属性 C 规范 void glGetProgramInterfaceiv GLuint program GLenum programInterface GLenum pnam
  • Hibernate复合主键的注解

    最近做项目用到了Hibernate框架 采用了纯面向对象的思想 使用ORM映射实体 在开发中 实体中出现了复合主键 不再是单一的属性作主键 由于采用了注解的方式 就不再使用xml文件进行配置了 而是直接在实体中进行注释 Hibernate注
  • Unity动画知识之二:Animator动画状态机

    文 拉撒路 上次我们讲过 Unity游戏动画从入门到住院 今天我们来讲一下动画状态机 好了 现在我们已经成功的导入了动画 接下来要玩的东西就很装13啦 因为大部分动画师是用不到这家伙的 需要掌握这个技能的 至少也是动画组长级别了 嗯 一个组
  • 找不到工作?对不起,这份测试面试题来晚了!

    1 测试测试与 测试的区别 首先alpha测试和beta都属于验收测试 这两种测试都需要用户参加 且都不能由程序员和测试员执行 广义上来讲 测试是 内测 测试是 公测 alpha测试是用户在开发环境或者是公司内部模拟实际操作环境的测试 测试
  • C#学习笔记 线程操作

    完整代码在这里 https github com techstay csharp learning note 创建并使用线程 使用线程执行任务 要创建一个线程很简单 实例化一个System Threading Thread对象并向其构造函数
  • optimizeinplace

    上篇介绍了 X文件网格的渲染方法 如果需要创建自己的网格文件 并将它渲染出来 那么可以考虑创建一个空的网格 然后读取网格文件内容 将顶点 材质和纹理数据写入以上的网格相关缓冲区中 创建一个自定义顶点格式的空Mesh网格可由 D3DXCrea
  • docker创建linux镜像,docker创建centos镜像无法使用systemctl

    docker获取centos镜像 里面执行安装lnmp之后 发现使用systemctl无法使用 root 92926bd84d70 systemctl restart nginx Failed to get D Bus connection
  • MES管理系统如何实现数据采集和过程控制

    随着工业4 0的到来 MES管理系统解决方案已成为企业实现生产过程数字化和智能化的关键工具 MES生产管理系统不仅提供生产计划 调度 质量管理和设备维护等功能 还在数据采集和过程控制方面发挥着重要作用 本文将探讨MES生产管理系统如何实现数
  • VS下Qt的信号与槽实现

    实现主窗口中Add按钮的功能 这一部分要特别注意 除了实现功能代码外 还需自己手动添加一些其他的代码 Qt Creator可以自动添加 我们需要在2个地方添加代码 第1个是在addressbook h文件下添加一个槽函数声明 即属于priv
  • net::ERR_CONNECTION_REFUSED 解决大全

    sockjs node info报错 sockjs node作用 SockJS is a JavaScript library for browsers that provides a WebSocket like object SockJ
  • 项目构建之maven篇:4.坐标与依赖及spring依赖注入demo

    源代码下载 坐标
  • 数据结构-将升序数组转化为平衡二叉搜索树-java

    1 题目 给定一个升序排序的数组 将其转化为平衡二叉搜索树 BST 平衡二叉搜索树指树上每个节点 node 都满足左子树中所有节点的的值都小于 node 的值 右子树中所有节点的值都大于 node 的值 并且左右子树的节点数量之差不大于1