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;
		}
		

};


原文地址:https://www.cnblogs.com/frankM/p/4399467.html