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

力扣1382:将二叉搜索树便平衡

给你一棵二叉搜索树,请你返回一棵 平衡后 的二叉搜索树,新生成的树应该与原来的树有着相同的节点值。如果有多种构造方法,请你返回任意一种。

如果一棵二叉搜索树中,每个节点的两棵子树高度差不超过 1 ,我们就称这棵二叉搜索树是 平衡的 。

示例 1:

输入:root = [1,null,2,null,3,null,4,null,null]
输出:[2,1,3,null,null,null,4]
解释:这不是唯一的正确答案,[3,1,4,null,2,null,null] 也是一个可行的构造方案。

示例 2:

输入: root = [2,1,3]
输出: [2,1,3]

思想:先用中序遍历将该搜素树存入数组中,然后创建平衡二叉树。

代码:

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     struct TreeNode *left;*     struct TreeNode *right;* };*/
void inOrderTraverse(struct TreeNode* root, int* pos, int arr[]) {if(root == NULL) return;inOrderTraverse(root->left, pos, arr);arr[(*pos)++] = root->val;inOrderTraverse(root->right, pos, arr);
}struct TreeNode* create(int *nums, int low, int high) {if(low > high) return NULL;int mid = (low + high) / 2;struct TreeNode* t = (struct TreeNode*)malloc(sizeof(struct TreeNode));t->val = nums[mid];t->left = create(nums, low, mid - 1);t->right = create(nums, mid + 1, high);return t;
}struct TreeNode* balanceBST(struct TreeNode* root){int arr[10000];int *pos = (int*)malloc(sizeof(int));*pos = 0;inOrderTraverse(root, pos, arr);return create(arr, 0, *pos - 1);
}

http://www.lryc.cn/news/494699.html

相关文章:

  • ElasticSearch学习篇19_《检索技术核心20讲》搜推广系统设计思想
  • 实战ansible-playbook:Ansible Vault加密敏感数据(三)
  • Python 视频合并工具
  • JavaScript实用工具lodash库
  • mapstruct DTO转换使用
  • Linux(Centos7)---安装nginx(很简单)
  • 【接口调试】OpenAI ChatGPT API
  • 云轴科技ZStack助力 “上科大智慧校园信创云平台”入选上海市2024年优秀信创解决方案
  • CPU性能优化-CPU特性
  • Idea使用Maven连接MySQL数据库
  • 《深入浅出HTTPS》读书笔记(13):块密码算法之迭代模式(续)
  • 使用Cmake导入OpenCV库的大坑记录
  • UE5 打包报错 Unknown structure 的解决方法
  • MySQL之单行函数
  • spring-boot自定义ApplicationListener及源码分析
  • C语言:深入理解指针
  • 【WPF实现RichTextBox添加文本、自动滚动】
  • 量化交易系统开发-实时行情自动化交易-8.4.MT4/MT5平台
  • 【HarmonyOS】@Observed和@ObjectLink嵌套对象属性更改UI不刷新问题
  • 什么是默克尔树(Merkle Tree)?如何计算默克尔根?
  • 眼部按摩仪WT2605音频蓝牙语音芯片方案 单芯片实现语音提示及控制/手机无线音频传输功能
  • python打包深度学习虚拟环境
  • springboot358智慧社区居家养老健康管理系统(论文+源码)_kaic
  • 复杂网络(二)
  • Kubernetes 01
  • node修改文件名称
  • ArcGIS 软件中路网数据的制作
  • transformers microsoft--table-transformer 表格识别
  • 【Spark源码分析】规则框架-草稿
  • 迪米特原则的理解和实践