[Leetcode 108]有序数组转二叉搜索树Convert Sorted Array to Binary Search Tree
【题目】
给出的升序排序的数组,个数必为奇数,要求形成二叉搜索(平衡)树。
【思路】
辅助函数fun,[0,len]=>[0,mid-1]+[mid+1,len]。
当left>right,返回null。
    public TreeNode fun(int[] nums,int left,int right) {
        int mid=(right+left)/2;
        TreeNode tmp=new TreeNode(nums[mid]);
        if(right<left)
            return null;
        tmp.left=fun(nums,left,mid-1);
        tmp.right=fun(nums,mid+1,right);
        return tmp;
    }
【AC代码】
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public TreeNode sortedArrayToBST(int[] nums) {
int len=nums.length;
if(nums.length==0){
return null;
}
TreeNode root=fun(nums,0,len-1);
return root;
} public TreeNode fun(int[] nums,int left,int right) {
int mid=(right+left)/2;
TreeNode tmp=new TreeNode(nums[mid]);
if(right<left)
return null;
tmp.left=fun(nums,left,mid-1);
tmp.right=fun(nums,mid+1,right);
return tmp;
}
}
[Leetcode 108]有序数组转二叉搜索树Convert Sorted Array to Binary Search Tree的更多相关文章
- LeetCode 108. 将有序数组转换为二叉搜索树(Convert Sorted Array to Binary Search Tree) 14
		108. 将有序数组转换为二叉搜索树 108. Convert Sorted Array to Binary Search Tree 题目描述 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索 ... 
- [Swift]LeetCode108. 将有序数组转换为二叉搜索树 | Convert Sorted Array to Binary Search Tree
		Given an array where elements are sorted in ascending order, convert it to a height balanced BST. Fo ... 
- [Swift]LeetCode109. 有序链表转换二叉搜索树 | Convert Sorted List to Binary Search Tree
		Given a singly linked list where elements are sorted in ascending order, convert it to a height bala ... 
- [LeetCode 109] - 将已排序链表转换为二叉搜索树 (Convert Sorted List to Binary Search Tree)
		问题 给出一个元素以递增序列排序的单链表,将其转换为一棵高度平衡的二叉搜索树. 初始思路 二叉搜索树高度平衡,意味着左右子树的高度要平衡.根据二叉树左子树节点小于根节点,右子树节点大于根节点的性质:我 ... 
- LeetCode 108. Convert Sorted Array to Binary Search Tree (将有序数组转换成BST)
		108. Convert Sorted Array to Binary Search Tree Given an array where elements are sorted in ascendin ... 
- [LeetCode] 108. Convert Sorted Array to Binary Search Tree ☆(升序数组转换成一个平衡二叉树)
		108. Convert Sorted Array to Binary Search Tree 描述 Given an array where elements are sorted in ascen ... 
- 108. Convert Sorted Array to Binary Search Tree 109. Convert Sorted List to Binary Search Tree -- 将有序数组或有序链表转成平衡二叉排序树
		108. Convert Sorted Array to Binary Search Tree Given an array where elements are sorted in ascendin ... 
- 37. leetcode 108. Convert Sorted Array to Binary Search Tree
		108. Convert Sorted Array to Binary Search Tree 思路:利用一个有序数组构建一个平衡二叉排序树.直接递归构建,取中间的元素为根节点,然后分别构建左子树和右 ... 
- leetcode 108. Convert Sorted Array to Binary Search Tree 、109. Convert Sorted List to Binary Search Tree
		108. Convert Sorted Array to Binary Search Tree 这个题使用二分查找,主要要注意边界条件. 如果left > right,就返回NULL.每次更新的 ... 
随机推荐
- arch----------arch下的一些命令,亲测
			1.taoyanghao 不在 sudoers 文件中.此事将被报告. 这个是使用sudo以后报出的错误提示,sudo确定已经安装了. 解决方案:编辑/etc/sudoers文件.找到这一 行:&qu ... 
- linux----------linux的scp命令介绍
			1.scp是有Security的文件copy,基于ssh登录. 命令基本格式: scp [OPTIONS] file_source file_target OPTIONS: -v 和大多数 linux ... 
- CentOS 7 使用SVN+Apache搭建版本控制服务器
			svn简介 Subversion是一个免费/开源的版本控制系统, Subversion 可以跨越时间地对文件和目录, 以及它们的修改进行管理. 这就允许你恢复 数据的旧版本, 或检查数据的修改历史. ... 
- 记录在tiny6410平台上采用4GSD卡来启动uboot和烧写nand flash uboot
			下面这种方法是从网上转的 没有验证 环境:ubuntu 13.04一.首先制作sd启动盘: 插入SD卡 sudo dd iflag=dsync oflag=dsync if=tiny210v2- ... 
- vue运行时 eslint 报“import/first”  WARN deprecated browserslist 问题解决
			vue运行时 eslint 报“import/first” WARN deprecated browserslist 问题解决 这个信息的意思是导入文件顺序不对,绝对导入应该放在相对导入前面.将绝对 ... 
- nodejs笔记之文件操作
			文件操作包含: 读取文件 写入文件 删除文件 创建目录 删除目录 读取文件: // 异步操作 var fs = require("fs"); fs.readFile(". ... 
- PHP5.6 Dockerfile
			FROM centos COPY ["src","/src"] RUN groupadd -g 1000 www \ && useradd -u ... 
- jQuery事件绑定与常用事件
			jQuery事件与js类似,只是在名称上将前面的on去掉了,例如jQuery的click.mousedown.keypress事件.jQuery绑定事件有2种方法,下面用最基本的例子做演示. ①直接绑 ... 
- Linux 系统TCP连接内存大小限制 调优
			系统TCP连接内存大小限制 TCP的每一个连接请求,读写都需要占用系统内存资源,可根据系统配置,对TCP连接数,内存大小,限制调优. 查看系统内存资源 记录内存 详情:cat /proc/meminf ... 
- Java实现简单的RPC框架
			一.RPC简介 RPC,全称为Remote Procedure Call,即远程过程调用,它是一个计算机通信协议.它允许像调用本地服务一样调用远程服务.它可以有不同的实现方式.如RMI(远程方法调用) ... 
