创建最小高度二叉树

来源:互联网 发布:淘宝如何指纹支付 编辑:程序博客网 时间:2024/06/06 03:17

给定一个有序数组(递增),写程序构建一棵具有最小高度的二叉树。

struct Node{int value;Node *left;Node *right;};void createTree(int a[], int begin, int end, Node* &root, Node *parent, bool leftChild){if (begin > end){return;}int mid = begin + (end-begin)/2;Node *p = new Node();p->value = a[mid];if (root == NULL){root = p;}else{    if (leftChild)    {     parent->left = p;    }    else    {    parent->right = p;}}if (begin > mid-1){p->left = NULL;}else{    createTree(a, begin, mid-1, root, p, true);}if (mid+1 > end){p->right = NULL;}else{    createTree(a, mid+1, end, root, p, false);}}


原创粉丝点击