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

    Problem:

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

    Analysis:

    Remember a binary search tree's inorder treversal is a sorted array. 

    To convert in the contrary direction, we need to create a node with the middle value of the given array and then create the left treenode with the left part of the array and the right treenode with the right part of the array. Do it recursively!

    Code:

     1 /**
     2  * Definition for binary tree
     3  * struct TreeNode {
     4  *     int val;
     5  *     TreeNode *left;
     6  *     TreeNode *right;
     7  *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     8  * };
     9  */
    10 class Solution {
    11 public:
    12     TreeNode *sortedArrayToBST(vector<int> &num) {
    13         // Start typing your C/C++ solution below
    14         // DO NOT write int main() function
    15         return sortedArrayToBSTHelper(num, 0, num.size()-1);
    16     }
    17     
    18     TreeNode *sortedArrayToBSTHelper(vector<int> &num, int lo, int hi) {
    19         if (lo > hi)
    20             return NULL;
    21         
    22         int mid = (lo + hi) / 2;
    23         TreeNode *node = new TreeNode(num[mid]);
    24         node->left = sortedArrayToBSTHelper(num, lo, mid-1);
    25         node->right = sortedArrayToBSTHelper(num, mid+1, hi);
    26         
    27         return node;
    28     }
    29 };
    View Code

    Attention:

    To create an object in C++, either the following two ways:

    1. SomeClass obj(para);

    2. SomeClass *obj = new SomeClass(para);

    The 1st will return an object, while the 2nd will return a pointer.

  • 相关阅读:
    cmd 重启oracle服务
    删除父节点同时删除该节点上的所有子节点(oracle)
    安装Oracle提示OracleMTSRecoveryService 已经存在,解决方法
    扩展easyui treegrid 级联选择
    Jetson TX2 不同的工作模式
    CMake版本升级
    高斯混合背景模型运动目标检测
    Windows WSL 安装OpenCV
    C++实现队列
    图像的尺度描述
  • 原文地址:https://www.cnblogs.com/freeneng/p/3087979.html
Copyright © 2011-2022 走看看