[LeetCode]Convert Sorted Array to Binary Search Tree

来源:互联网 发布:nginx 排除子域名 编辑:程序博客网 时间:2024/04/30 04:40
struct TreeNode {int val;TreeNode *left;TreeNode *right;TreeNode(int x) : val(x), left(NULL), right(NULL) {}};class Solution {public:TreeNode* Convert2BST(vector<int>& num, int start, int end){if(start > end)return NULL;int mid = (start+end)/2;TreeNode* pNode = new TreeNode(num[mid]);pNode->left = Convert2BST(num, start, mid-1);pNode->right = Convert2BST(num, mid+1, end);return pNode;}    TreeNode *sortedArrayToBST(vector<int> &num) {        // Start typing your C/C++ solution below        // DO NOT write int main() function        return Convert2BST(num, 0, num.size()-1);    }};

second time

/** * 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* sortedArrayToBSTUtil(vector<int>& num, int start, int end)    {        if(start > end) return NULL;        int mid = start+(end-start)/2;        TreeNode* root = new TreeNode(num[mid]);        root->left = sortedArrayToBSTUtil(num, start, mid-1);        root->right = sortedArrayToBSTUtil(num, mid+1, end);        return root;    }    TreeNode *sortedArrayToBST(vector<int> &num) {        // Start typing your C/C++ solution below        // DO NOT write int main() function        return sortedArrayToBSTUtil(num, 0, num.size()-1);    }};


原创粉丝点击