【LeetCode】Convert Sorted Array to Binary Search Tree

来源:互联网 发布:docker sql server 编辑:程序博客网 时间:2024/06/16 06:05

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 *GetNode(vector <int> &num, int left, int right)    {        if(left <= right)//not while!        {            int mid = (right + left) / 2;            TreeNode *node = new TreeNode(num[mid]);            node->left = GetNode(num, left, mid-1);            node->right = GetNode(num, mid+1, right);            return node;        }        return NULL;//necessary,otherwise runtime error occurs    }        TreeNode *sortedArrayToBST(vector<int> &num)     {        if(num.size() == 0) return NULL;                return GetNode(num, 0, num.size()-1);    }};


0 0
原创粉丝点击