(016)给定一个有序数组(递增),敲代码构建一棵具有最小高度的二叉树(keep it up)
Posted lytwajue
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(016)给定一个有序数组(递增),敲代码构建一棵具有最小高度的二叉树(keep it up)相关的知识,希望对你有一定的参考价值。
给定一个有序数组(递增),敲代码构建一棵具有最小高度的二叉树。
因为数组是递增有序的。每次都在中间创建结点,类似二分查找的方法来间最小树。
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); } }实际上就是二分查找树。
。。
以上是关于(016)给定一个有序数组(递增),敲代码构建一棵具有最小高度的二叉树(keep it up)的主要内容,如果未能解决你的问题,请参考以下文章
Leetcode练习(Python):树类:第108题:将有序数组转换为二叉搜索树:将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的