`

LeetCode 108 - Convert Sorted Array to Binary Search Tree

阅读更多

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

public TreeNode sortedArrayToBST(int[] num) {
    if(num.length==0) return null;
    return toBST(num, 0, num.length-1);
}

private TreeNode toBST(int[] num, int start, int end) {
    if(start > end) {
        return null;
    }
    int m = (start+end)>>1;
    TreeNode node = new TreeNode(num[m]);
    node.left = toBST(num, start, m-1);
    node.right = toBST(num, m+1, end);
    return node;
}

 

TreeNode* sortedArrayToBST(vector<int>& nums) {
    if(!nums.size()) return NULL;
    int *arr = &nums[0];
    return toBST(arr, nums.size());
}

TreeNode *toBST(int* nums, int n) {
    if(n == 0) return NULL;
    int m = n / 2;
    TreeNode *root = new TreeNode(nums[m]);
    root->left = toBST(nums, m);
    root->right = toBST(nums+m+1, n-m-1);
    return root;
}

 

分享到:
评论

相关推荐

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

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

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

    python python_leetcode题解之108_Convert_Sorted_Array_to_Binary_Search_Tree

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

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

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

    leetcode卡 leetcode exercises 3-5 solutions everyday. fighting~ TODO array Best Time to Buy and Sell Stock II Valid Sudoku linked list Palindrome linked list Linked List Cycle trees Convert Sorted ...

    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...

    lrucacheleetcode-leetcode:leetcode

    lru缓存leetcode leetcode 大批 41. First Missing Positive 广度优先搜索 773. Sliding Puzzle 864. Shortest Path to Get All Keys 深度优先搜索 996. Number of Squareful Arrays 拓扑排序 269. Alien Dictionary...

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

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

    CleanCodeHandbook_v1.0.3

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

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

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

    Leetcode book刷题必备

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

    常见算法题答案及解析

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

    Leetcode答案(c++版)

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

    leetcode官方50题算法详解

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

Global site tag (gtag.js) - Google Analytics