using namespace std;
struct node
{
int val;
struct node* left;
struct node* right;
node(int v=0)
{
val = v;
left = 0;
right = 0;
}
};
typedef struct node* link;
// array a is sorted
void convert(int a[], int left, int right, link& h)
{
if (right < left) return;
int mid = (left + right)>>1;
h = new node(a[mid]);
convert(a, left, mid-1, h->left);
convert(a, mid+1, right, h->right);
}
int main(int argc, char* argv[])
{
link h = 0;
int a[10] = {0,1,2,3,4,5,6,7,8,9};
convert(a, 0, 9, h);
return 0;
}
将有序数组转化为二叉树
最新推荐文章于 2021-12-09 14:40:43 发布