题意:

  将一个有序的数组建成一棵平衡的BST树。

思路:

  因为数组已经有序,每次可以从中点开始建根,再递归下去分别处理左/右子树。

 /**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public: TreeNode* DFS(vector<int>& nums,int L,int R)
{
if(L>R) return NULL;
int mid=(L+R)>>;
TreeNode* t=new TreeNode(nums[mid]);
t->left=DFS(nums, L, mid-);
t->right=DFS(nums, mid+, R);
return t;
} TreeNode* sortedArrayToBST(vector<int>& nums) {
return DFS(nums,,nums.size()-);
}
};

AC代码

最新文章

  1. Linux达人养成第一季
  2. Python基础篇【第6篇】: Python模块subprocess
  3. 关于Rotation和Quaternion的一些问题
  4. yii中第三方库
  5. Windows常用性能计数器总结
  6. 最近升级了一下小老婆(8核 2x8G DDR3 128G SSD)
  7. 如何使用 yum 安装/更新/移除 软件
  8. Nutch是个不错的选择
  9. Swift连接字符串和字符
  10. IDEA + Maven + JavaWeb项目搭建
  11. C#多线程编程(4)--异常处理+前三篇的总结
  12. gitignore忽略规则
  13. Vue.js 子组件的异步加载及其生命周期控制
  14. log4j 详细使用教程【转载】
  15. JAVA SOCKET编程单线程简单实例
  16. js面向对象高级编程
  17. 关于System.in如何执行的问题
  18. DRDS 概述
  19. multiprocessing、threading、gevent区别
  20. 【Ansible 文档】【译文】动态inventory

热门文章

  1. 数据库与SQL语言
  2. li排序的两种方法
  3. linux apache 自动监护脚本
  4. 使用Chef管理windows集群 | 运维自动化工具
  5. java模式之-模板方法模式
  6. caches 文件夹删除
  7. EntLib Unity父类的依赖注入问题
  8. Spring学习笔记之模块简介
  9. 对项目的测试--Resharper
  10. JAVA每日一旅3