Convert Sorted Array to Binary Search Tree转换成平衡二查搜索树
Given an array where elements are sorted in ascending order, convert it to a height balanced BST.
二分递归转换
Tree Depth-first Search/** * 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 *creatTree(vector<int> &num,int left,int right){ if(left>right) return NULL; int mid=(right+left)/2; TreeNode *leftNode=creatTree(num,left,mid-1); TreeNode *rightNode=creatTree(num,mid+1,right); TreeNode *node = new TreeNode(num[mid]); node->left=leftNode; node->right=rightNode; return node; } TreeNode *sortedArrayToBST(vector<int> &num) { return creatTree(num,0,num.size()-1); } };