您的位置:首页 > 其它

将一个已经排序好的数组变成height最小的BinaryTree

2011-04-22 04:38 232 查看
Node* CreateBinaryTree(int* arr, int leftIndex, int rightIndex)
{
if (rightIndex<leftIndex)
{
return NULL;
}
int currentIndex = (leftIndex + rightIndex) /2;
Node* p = new Node();
p->data = arr[currentIndex];
p->lchild = CreateBinaryTree(arr, leftIndex, currentIndex-1);
p->rchild = CreateBinaryTree(arr, currentIndex+1, rightIndex);
}


Convert a sorted Array to a BinaryTree with minimum height.

中心思想就是通过3个参数,一个输入的array,一个从哪里开始的index,一个在哪里结束的index,这三个参数。

然后通过递归来调用。

每次都是取中间一个,然后左孩子则是通过同样算法取左半边的array,右孩子是通过同样算法取右半边的array。

最终形成一颗二叉树。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐