Given a sorted (increasing order) array, write an algorithm to create a binary tree with minimal height.

typedef struct Node
{
    int val;
    Node *left,*right;
    Node(int v){ val = v;left = right = NULL;}
}Node;

Node* createTree(int a[],int start,int end)
{
    if(start<=end)
    {
        int mid = start+(end-start)/2;
        Node *newNode = new Node(a[mid]);
        
        newNode->left = createTree(a,start,mid-1);
        newNode->right = createTree(a,mid+1,end);
        
        return newNode;
    }
    else
        return NULL;
}
int main()
{   int n,a[n];
     Node *root = createTree(a,0,n-1);
}

 

 posted on 2013-08-07 15:17  xuanxu  阅读(150)  评论(0编辑  收藏  举报