当前位置: 首页 > news >正文

二叉树构建

由于二叉树的左右子树和整树相似(即子问题和原始问题相似),因此多考虑使用递归的方法解决问题。

·leetcode 108.将有序列表转换为二叉树

给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 

平衡

 二叉搜索树。

示例 1:

输入:nums = [-10,-3,0,5,9]
输出:[0,-3,9,-10,null,5]
解释:[0,-10,5,null,-3,null,9] 也将被视为正确答案:

示例 2:

输入:nums = [1,3]
输出:[3,1]
解释:[1,null,3] 和 [3,1] 都是高度平衡二叉搜索树。

·解题思路

将数组转换为二叉树就是将数组进行二分法,将中间的点作为父节点,构建左右子树。

        Java代码

class Solution {public TreeNode sortedArrayToBST(int[] nums) {if(nums.length == 0) return null;return build(nums ,0 ,nums.length - 1);}public TreeNode build(int[] nums , int l , int r){if(l > r) return null;int mid = l + (r - l) / 2;TreeNode root = new TreeNode(nums[mid]);root.left = build(nums , l , mid - 1);root.right = build(nums, mid+ 1, r);return root;}public class TreeNode {int val;TreeNode left;TreeNode right;TreeNode(int x) { val = x; }TreeNode(int val, TreeNode left, TreeNode right) {this.val = val;this.left = left;this.right = right;}}
}

相关文章:

  • 【CS.PL】Lua 编程之道: 控制结构 - 进度24%
  • 浏览器f12控制台怎么获取vue实例,并且修改data数据
  • C语言学习系列:笔记列表
  • 信号处理中的相位
  • ESP32s3与Lsm6ds3通信---i2c【开源】
  • 单目物体测距
  • Linux 性能优化基础
  • 2024050901-重学 Java 设计模式《实战访问者模式》
  • DB-Engines Ranking 2024年6月数据库排行
  • 大屏幕互动系统PHP源码 附动态背景图和配乐素材 含搭建教程
  • 【乐吾乐2D可视化组态编辑器】在线使用,快速入门
  • yolov8摔倒检测(包含数据集+训练好的模型)
  • 实现一个vue js小算法 选择不同的时间段 不交叉
  • 数智化招采平台多层级多租户能力的价值
  • php文件包含
  • 自己简单写的 事件订阅机制
  • android 一些 utils
  • angular2开源库收集
  • AWS实战 - 利用IAM对S3做访问控制
  • flask接收请求并推入栈
  • GitUp, 你不可错过的秀外慧中的git工具
  • go append函数以及写入
  • happypack两次报错的问题
  • JavaScript中的对象个人分享
  • SQLServer之创建数据库快照
  • ⭐ Unity 开发bug —— 打包后shader失效或者bug (我这里用Shader做两张图片的合并发现了问题)
  • Unix命令
  • 阿里中间件开源组件:Sentinel 0.2.0正式发布
  • 不上全站https的网站你们就等着被恶心死吧
  • 关于使用markdown的方法(引自CSDN教程)
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 蓝海存储开关机注意事项总结
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • #pragma 指令
  • #我与Java虚拟机的故事#连载02:“小蓝”陪伴的日日夜夜
  • (4)Elastix图像配准:3D图像
  • (c语言+数据结构链表)项目:贪吃蛇
  • (ibm)Java 语言的 XPath API
  • (Java入门)抽象类,接口,内部类
  • (js)循环条件满足时终止循环
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (二刷)代码随想录第15天|层序遍历 226.翻转二叉树 101.对称二叉树2
  • (附源码)spring boot车辆管理系统 毕业设计 031034
  • (简单有案例)前端实现主题切换、动态换肤的两种简单方式
  • (每日持续更新)jdk api之StringBufferInputStream基础、应用、实战
  • (十八)devops持续集成开发——使用docker安装部署jenkins流水线服务
  • (十五)使用Nexus创建Maven私服
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • (转)memcache、redis缓存
  • **登录+JWT+异常处理+拦截器+ThreadLocal-开发思想与代码实现**
  • .gitignore文件使用
  • .net 4.0发布后不能正常显示图片问题
  • .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter
  • .NET设计模式(2):单件模式(Singleton Pattern)