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;
}
將有序數組轉化爲二叉樹
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.