首页 > 代码库 > Convert Sorted Array to Binary Search Tree转换成平衡二查搜索树

Convert Sorted Array to Binary Search Tree转换成平衡二查搜索树

Given an array where elements are sorted in ascending order, convert it to a height balanced BST.

 二分递归转换

Hide Tags
 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);    }};

 

Convert Sorted Array to Binary Search Tree转换成平衡二查搜索树