LeetCode Convert Sorted Array to Binary Search Tree
链接: https://oj.leetcode.com/problems/convert-sorted-array-to-binary-search-tree/
把一个有序数组转换成一棵AVL树
/** * 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 *makeNode(int l,int r,vector<int> num) { if(l+1==r) { TreeNode *root=new TreeNode(num[r]); root->left=new TreeNode(num[l]); return root; } if(l==r) { return new TreeNode(num[l]); } int mid=(l+r)/2; TreeNode *root=new TreeNode(num[mid]); root->left=makeNode(l,mid-1,num); root->right=makeNode(mid+1,r,num); return root; } TreeNode *sortedArrayToBST(vector <int> &num) { TreeNode *ans=NULL; if(!num.empty()) ans=makeNode(0,num.size()-1,num); return ans; } };