zoukankan      html  css  js  c++  java
  • Convert Sorted Array to Binary Search Tree [LeetCode]

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

    Summary: pretty easy, recursive staff.

     1 class Solution {
     2 public:
     3     TreeNode *sortedArrayToBST(vector<int> &num) {
     4         int size = num.size();
     5         if(size == 0) 
     6             return NULL;
     7         if(size == 1)
     8             return new TreeNode(num[0]);
     9         if(num.size() % 2 == 1) {
    10             TreeNode * root = new TreeNode(num[size/2]);
    11             if(size/2 - 1 >= 0){
    12                vector<int> left(num.begin(), num.begin() + size/2); 
    13                root->left = sortedArrayToBST(left);
    14             }
    15             if(size/2 + 1 < size) {
    16                 vector<int> right(num.begin() + size/2 + 1, num.end());
    17                 root->right = sortedArrayToBST(right);
    18             }
    19             return root;
    20         }else {
    21             TreeNode * root = new TreeNode(num[size/2 - 1]);
    22             if(size/2 - 1 - 1 >= 0){
    23                 vector<int> left(num.begin(), num.begin() + size/2 - 1); 
    24                 root->left = sortedArrayToBST(left);
    25             }
    26             if(size/2 - 1 + 1 < size) {
    27                 vector<int> right(num.begin() + size/2 -1 + 1, num.end());
    28                 root->right = sortedArrayToBST(right);
    29             }
    30             return root;
    31         }
    32     }
    33 };
  • 相关阅读:
    python框架之Django(2)-简单的CRUD
    python框架之Django(1)-第一个Django项目
    实习进度13
    实习进度12
    实习进度11
    实习进度10
    学习进度08
    毕设进度07
    毕设进度06
    毕设进度05
  • 原文地址:https://www.cnblogs.com/guyufei/p/3404614.html
Copyright © 2011-2022 走看看