博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
给定一个有序整数数组,元素各不相同且按照升序排列,编写一个算法,创建一个高度最小的二叉查找树...
阅读量:6903 次
发布时间:2019-06-27

本文共 658 字,大约阅读时间需要 2 分钟。

hot3.png

      二叉查找树是,对于任意一个结点,左边的结点均小于它,右边的结点均大于它

要创建一个高度最小的树,就必须让左右子结点的数量越接近越好,也就是说,要让中间值成为根节点,这样,左边的一半是左子树,右边的一半是右子树

然后,继续以类似的方式构造整棵树,数据每一段的中间值成为根元素,左边一半成为左子树,右边一半成为右子树

用递归方式运用createMinimumBST()

 

[java]

 

  1. import BTreeBalanced.TreeNode;  
  2.   
  3.   
  4. public class minimumBST {  
  5.     TreeNode createMinumumBST(int arr[], int start, int end) {  
  6.         if (end < start) {  
  7.             return null;  
  8.         }  
  9.           
  10.         int mid = (start + end) / 2;  
  11.         TreeNode n = new TreeNode (arr[mid]);  
  12.         n.left = createMinimumBST(arr, start, mid - 1);  
  13.         n.right = createMinumumBST(arr, mid + 1, end);  
  14.         return n;  
  15.     }  
  16.       
  17.     TreeNode createMinimumBST(int arr[]) {  
  18.         return createMinimumBST(array, 0, array.length - 1);  
  19.     }  
  20. }

转载于:https://my.oschina.net/u/2822116/blog/789661

你可能感兴趣的文章
Web 性能优化:21 种优化 CSS 和加快网站速度的方法
查看>>
如何使用jquery实现全屏问题
查看>>
Java 时间日期系列目录
查看>>
PHP关于反斜杠处理函数addslashes()和stripslashes()的用法
查看>>
读Zepto源码之IOS3模块
查看>>
Dubbo学习笔记
查看>>
Redis从入门到放弃 之 Nosql
查看>>
IoC框架(依赖注入 DI)
查看>>
Spring AOP + Redis缓存数据库查询
查看>>
【再论深度学习必死】马库斯回应14大质疑,重申深度学习怀疑论
查看>>
python:列表生成器
查看>>
Mac Book的Retina高清显示屏下页面显示与固定宽度问题
查看>>
云数据库管理与数据迁移可以认证了,是时候证明自己了
查看>>
Linux系统下创建任务,对指定目录文件进行自动压缩存档
查看>>
node项目使用gitlab自动部署
查看>>
JAVA语言基础-数组
查看>>
CentOS修改系统时间为北京时间的命令
查看>>
java文件操作
查看>>
删除表中重复数据的四种方法(oracle)
查看>>
11.26 访问控制Directory
查看>>