您的位置:首页 > 编程语言

(016)给定一个有序数组(递增),敲代码构建一棵具有最小高度的二叉树(keep it up)

2017-04-29 17:22 513 查看
给定一个有序数组(递增),敲代码构建一棵具有最小高度的二叉树。

因为数组是递增有序的。每次都在中间创建结点,类似二分查找的方法来间最小树。

struct TreeNode
{
int data;
TreeNode* leftChild;
TreeNode* rightChild;
};

void newNode(TreeNode*& vNode, int vData)
{
vNode              = new TreeNode;
vNode->data        = vData;
vNode->leftChild   = NULL;
vNode->rightChild  = NULL;
}

void creatMinBinTree(TreeNode*& vNode, int vData[], int vBgn, int vEnd)
{
if (vBgn <= vEnd)
{
int Mid = vBgn + (vEnd - vBgn)>>1;
newNode(vNode, vData[Mid]);

creatMinBinTree(vNode->leftChild, vData, vBgn, Mid-1);
creatMinBinTree(vNode->rightChild, vData, Mid+1, vEnd);
}
}
实际上就是二分查找树。

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