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

A.每日一题——1382. 将二叉搜索树变平衡

题目链接:1382. 将二叉搜索树变平衡(中等)

算法原理:

解法:递归

2ms击败100.00%

时间复杂度O(N)

①题目明确是二叉搜索树,则节点值天然满足:左子树<根<右子树,因此通过一次A.每日一题——94. 二叉树的中序遍历,直接把节点都扔进数组里,就是天然升序的

②再通过A.每日一题——108. 将有序数组转换为二叉搜索树转化成平衡树即可

Java代码:

/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, TreeNode right) { * this.val = val; * this.left = left; * this.right = right; * } * } */ class Solution { public TreeNode balanceBST(TreeNode root) { List<Integer> nums=inorder(root); return sorttoBST(nums); } //中序遍历 private List<Integer> inorder(TreeNode root){ List<Integer> ret=new ArrayList<>(); dfs(ret,root); return ret; } private void dfs(List<Integer> ret,TreeNode node){ if(node==null) return ; dfs(ret,node.left); ret.add(node.val); dfs(ret,node.right); } //将有序数组转换成二叉搜索树 private TreeNode sorttoBST(List<Integer> nums){ return build(nums,0,nums.size()); } private TreeNode build(List<Integer> nums,int left,int right){ if(left==right) return null; int mid=left+(right-left)/2; return new TreeNode(nums.get(mid),build(nums,left,mid),build(nums,mid+1,right)); } }
http://www.jsqmd.com/news/371487/

相关文章:

  • 一人食调味痛点破解:小容量健康调味品,告别凑活吃出精致感 - 谈谈-新视野
  • 计算机毕业设计springboot医疗纠纷处理系统 医患矛盾调解信息化平台的设计与实现 医疗事故争议在线处置系统的设计与开发
  • B3872 [GESP202309 五级] 巧夺大奖
  • 信息论与编码篇---微分熵
  • 2深度学习基础知识
  • 独居餐如何有仪式感?天然提鲜调味品,让一人食告别凑活 - 谈谈-新视野
  • 信息论与编码篇---微分熵的极值性
  • 一人食不将就:轻盐调味让独居餐吃出健康与仪式感 - 谈谈-新视野
  • 自定义控件 - 流式布局:TagFlowLayout
  • 信息论与编码篇---连续随机变量的微分熵
  • 六个月慢酿的轻盐调味品,适配一人食的健康选择 - 谈谈-新视野
  • 一人食调味不将就:轻盐慢酿方案,让独居餐有仪式感还不浪费 - 谈谈-新视野
  • 破局基层沟通壁垒 赋能凉山脱贫攻坚——智能会议系统筑牢政务协同“数字桥梁”
  • Spring Boot 中采用 @Transactional 注解设置事务管理
  • 关于春节期间创作者身份认证审核延迟的通知
  • C/C++ 从 Excel (.xls)文件中提取图像 - capp
  • Flink从入门到上天系列第三篇:Flink集群化部署
  • B3929 [GESP202312 五级] 小杨的幸运数
  • Kafka从入门到上天系列第八篇:如果直接在zookeeper当中把controller节点直接删除掉。会发生什么?
  • AppML 案例模型:深度解析与应用前景
  • C# 类型转换详解:隐式、显式转换及常用方法
  • Node.js 安装配置指南
  • 智能教育Agentic AI的伦理框架:提示工程架构师的设计原则与实践
  • 按键消抖方法
  • MySQL 安装配置
  • 手把手教你学Simulink--基于高比例可再生能源渗透的复杂电网建模场景实例:多馈入直流系统中光伏电站与风电场协同运行仿真
  • 从模型到产品:Claude AI原生应用商业化路径
  • 使用 MATLAB/Simulink + Simscape Electrical 构建一个包含风光互补发电系统的模型
  • 数据库系统概论第一章
  • 1169: PIPI倒水