Given an array where elements are sorted in ascending order, convert it to a height balanced BST.

Solution:

 /**
* Definition for binary tree
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
public class Solution {
public TreeNode sortedArrayToBST(int[] num) {
if (num.length==0)
return null; int end = num.length-1;
TreeNode root = sortedArrayToBSTRecur(num,0,end);
return root;
} public TreeNode sortedArrayToBSTRecur(int[] num, int head, int end){
if (head==end){
TreeNode root = new TreeNode(num[head]);
return root;
} if (head+1==end){
TreeNode root = new TreeNode(num[end]);
TreeNode child = new TreeNode(num[head]);
root.left = child;
return root;
} //Calculate the median index.
int len = end-head;
int mid = head + len/2 + len%2;
TreeNode root = new TreeNode(num[mid]);
TreeNode leftChild = sortedArrayToBSTRecur(num,head,mid-1);
TreeNode rightChild = sortedArrayToBSTRecur(num,mid+1,end);
root.left = leftChild;
root.right = rightChild;
return root;
}
}

最新文章

  1. a标签产生间隙,<a> 包裹 <img> 产生 4px 间隙
  2. phpmyadmin修改root密码
  3. js-JavaScript高级程序设计学习笔记12
  4. 【MySQL】MySQL忘记root密码解决方案
  5. 【hadoop代码笔记】Hadoop作业提交中EagerTaskInitializationListener的作用
  6. 【Zookeeper】源码分析之网络通信(一)
  7. HTTP协议&SOCKET协议
  8. js的event事件
  9. 虚拟机迁移(QEMU动态迁移,Libvirt动(静)态迁移)
  10. 强化学习(十七) 基于模型的强化学习与Dyna算法框架
  11. luogu P5303 [GXOI/GZOI2019]逼死强迫症
  12. Nginx的正向代理与反向代理详解
  13. 【原】Java学习笔记009 - 阶段测试
  14. 团队作业第六周--alpha阶段项目复审
  15. ASP.NET MVC - 处理Html数据
  16. 基于【CentOS-7+ Ambari 2.7.0 + HDP 3.0】搭建HAWQ数据仓库01 —— 准备环境,搭建本地仓库,安装ambari
  17. SpringBoot-热部署Devtools
  18. bzoj2045
  19. SQL-25 获取员工其当前的薪水比其manager当前薪水还高的相关信息
  20. 【机器学习】感知机学习算法(PLA)

热门文章

  1. jpush推送
  2. log4j使用示例
  3. C# 使用IP端口网络打印图片
  4. Python 常用内置模块(加密模块 hashlib,Base64)
  5. python学习之time模块
  6. 李洪强总结KVC用法
  7. layui点击table表格的每一格时显示相应的内容
  8. js上传控件 plupload 使用记录
  9. sql命令大全
  10. linux命令之高级使用 find