[leetcode]Convert Sorted Array to Binary Search Tree

来源:互联网 发布:北京大学 大数据专业 编辑:程序博客网 时间:2024/06/02 06:01

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 binary tree * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public:    TreeNode * insertNextTreeNode(int b, int e, vector<int>&num){        if(b > e) return NULL;            int mid = b + (e - b) / 2;    TreeNode *root = new TreeNode(num[mid]);        root->left = insertNextTreeNode(b, mid - 1, num);    root->right = insertNextTreeNode(mid + 1, e, num);        return root;    }        TreeNode *sortedArrayToBST(vector<int> &num) {    // Note: The Solution object is instantiated only once and is reused by each test case.    //用二分查找的思想进行建树    if (num.size() == 0){    return NULL;    }    int b = 0;    int e = num.size() - 1;        return insertNextTreeNode(b, e, num);    }};

0 0
原创粉丝点击