LeetCode(108) Convert Sorted Array to Binary Search Tree

来源:互联网 发布:软通动力java工资 编辑:程序博客网 时间:2024/05/27 01:29
/** * Definition for a binary tree node. * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public:    TreeNode* recursion(vector<int>& nums, int start, int end) {        if(end - start == 0) {            TreeNode *p1 = new TreeNode(nums[start]);            p1->left = NULL;            p1->right = NULL;            return p1;        }        if(end - start == 1) {            TreeNode *p1 = new TreeNode(nums[start]);            TreeNode *p2 = new TreeNode(nums[end]);            p1->left = NULL;            p1->right = NULL;            p2->left = p1;            p2->right = NULL;            return p2;        }        int mid = (start + end) / 2;        TreeNode *p1 = new TreeNode(nums[mid]);        p1->left = recursion(nums, start, mid - 1);        p1->right = recursion(nums, mid + 1, end);        return p1;    }    TreeNode* sortedArrayToBST(vector<int>& nums) {        if(nums.size() == 0)            return NULL;        return recursion(nums, 0, nums.size() - 1);    }};
0 0
原创粉丝点击