將有序數組轉化爲二叉樹

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章