`

Convert Sorted Array to Binary Search Tree

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

给定一个排好序的数组,构造一颗平衡的二叉搜索树。我们可以每次都取数组的中间点作为当前子树的根节点,递归完成。代码如下:
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
public class Solution {
    public TreeNode sortedArrayToBST(int[] nums) {
        if(nums == null || nums.length == 0) return null;
        int l = 0; 
        int r = nums.length - 1;
        int m = l + (r - l) / 2;
        TreeNode root = new TreeNode(nums[m]);
        root.left = sortedArrayToBST(Arrays.copyOfRange(nums, 0, m));
        root.right = sortedArrayToBST(Arrays.copyOfRange(nums, m + 1, nums.length));
        return root;
    }
}
分享到:
评论

相关推荐

    python-leetcode题解之108-Convert-Sorted-Array-to-Binary-Search-Tree

    python python_leetcode题解之108_Convert_Sorted_Array_to_Binary_Search_Tree

    js-leetcode题解之108-convert-sorted-array-to-binary-search-tree.js

    js js_leetcode题解之108-convert-sorted-array-to-binary-search-tree.js

    常见算法题答案及解析

    29. Convert Sorted Array to Binary Search Tree:将有序数组转换为高度平衡的二叉搜索树。 30. Convert Sorted List to Binary Search Tree:将有序链表转换为高度平衡的二叉搜索树。 31. Binary Tree Maximum ...

    CleanCodeHandbook_v1.0.3

    - Convert Sorted Array to Binary Search Tree(将有序数组转换为二叉搜索树) 7. Bit Manipulation(位运算): 位运算是对整数在内存中的二进制形式进行的运算。它是一种低级操作,但能高效地完成某些特定的任务...

    leetcode卡-leetcode:利特码解决方案

    Convert Sorted Array to Binary Search Tree string and search First Bad Version Dynamic Programing *** Climbing Stairs Set Matrix Zeroes API System.arrayCopy 刷题顺序 TOP100 其中算法,主要是以下几种: ...

    LeetCode最全代码

    26 | [Remove Duplicates from Sorted Array](https://leetcode.com/problems/remove-duplicates-from-sorted-array/)| [C++](./C++/remove-duplicates-from-sorted-array.cpp) [Python](./Python/remove-duplicates...

    leetcode官方50题算法详解

    2. **将有序数组转换为二叉搜索树(Convert Sorted Array to Binary Search Tree)**:利用有序数组的特点,通过递归构建平衡的二叉搜索树。 ### 动态规划 动态规划是解决复杂问题的常用方法,主要通过将问题分解...

    lrucacheleetcode-leetcode:leetcode

    array 239. Sliding Window Maximum 255. Verify Preorder Sequence in Binary Search Tree 907. Sum of Subarray Minimums 二叉搜索树 99. Recover Binary Search Tree 109. Convert Sorted List to Binary Search ...

    Leetcode book刷题必备

    29. Convert Sorted Array to Balanced Binary Search Tree:将有序数组转换成平衡的二叉搜索树。 30. Convert Sorted List to Balanced Binary Search Tree:将有序链表转换成平衡的二叉搜索树。 31. Binary Tree ...

    Leetcode题目+解析+思路+答案.pdf

    - **Convert Sorted List/Array to Binary Search Tree**:将有序列表或数组转换为二叉搜索树。 - **Path Sum II**:寻找所有从根节点到叶节点的路径,其路径和等于给定的目标值。 - **Flatten Binary Tree to ...

    leetcode添加元素使和等于-LeetCode:leetcode

    leetcode添加元素使和等于 LeetCode leetcode 指针类型题目 1. 链表 函数参数传入的链表都没有链表的头,从第一个有数据的节点开始 函数返回一个链表,这个链表也没有头 2. 内存分配 二维数组内存分配 ...

    Leetcode答案(c++版)

    **1.9 Convert Sorted List to Binary Search Tree (109)** - **问题描述**:给定一个链表,将其转换为平衡二叉搜索树。 - **解题思路**: - 先找到链表的中间节点作为根节点。 - 使用递归方式处理左子树和右子树...

    算法-leetcode-剑指offer上的题很多

    - **整数转换(Convert Integer A to Integer B)**: 将一个整数转换为另一个整数。 - **阶乘末尾0的个数(Factorial Trailing Zeroes)**: 计算一个整数阶乘结果末尾有多少个零。 - **唯一二叉搜索树(Unique Binary ...

    python3.6.5参考手册 chm

    PEP 529: Change Windows filesystem encoding to UTF-8 PEP 528: Change Windows console encoding to UTF-8 PEP 520: Preserving Class Attribute Definition Order PEP 468: Preserving Keyword Argument ...

Global site tag (gtag.js) - Google Analytics